2016-04-29 5 views
0

ich folgendes Feld habe in meinem Viewmodel:Datetime mit ASP.NET MVC

[Display(Name = "Datum und Uhrzeit der Vorstellung")] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy HH:mm}")] 
public DateTime DateAndTimeOfPerformance { get; set; } 

Und die folgende Art und Weise in einer Teilansicht anzuzeigen:

<div class="form-group"> 
    @Html.LabelFor(model => model.DateAndTimeOfPerformance, new { @class = "control-label" }) 
    <div class="input-group date datetimepicker"> 
     @Html.TextBoxFor(model => model.DateAndTimeOfPerformance, "{0:dd.MM.yyyy HH:mm}", new { @class = "form-control", @Value = Model?.DateAndTimeOfPerformance.ToString("dd.MM.yyyy HH:mm") }) 
     <span class="input-group-addon"> 
      <span class="glyphicon glyphicon-calendar"></span> 
     </span> 
    </div> 
    @Html.ValidationMessageFor(model => model.DateAndTimeOfPerformance, null, new { @class = "text-danger" }) 
</div> 

Wie Sie sehen können, verwende ich Bootstrap des Datetimepicker:

$('.datetimepicker').datetimepicker({ 
     format: "DD.MM.YYYY hh:mm" 
    }); 

Aber ich bekomme immer die Validierungsfehler:

Aus meinen Recherchen zu Stackoverflow habe ich gesehen, dass es mit DateTime schwierig sein kann, aber ich habe kein passendes Beispiel gefunden, um zu sehen, wie es funktioniert.

Gibt es eine Möglichkeit MVC Validierung und Bootstrap's Datetimepicker zu kombinieren?

Dank

+0

Welchen Wert hat die Kultur Ihrer App und Ihre Kultur? Sie können sie in web.config festlegen. Wenn dies nicht festgelegt ist, verwendet der Standardwert en-EN und daher kann Ihr Wert nicht zu einem dateTime analysiert werden. –

+0

Standardmäßig validiert "jQuery.validator" Daten basierend auf dem Format "MM/TT/JJJJ", sodass Sie den Validator neu konfigurieren müssen. Für einige Optionen siehe [diese Antwort] (http://stackoverflow.com/questions/27285458/jquery-ui-datepicker-and-mvc-view-model-type-datetime/27286969#27286969) –

Antwort

0

Dies ist definitiv ein Problem mit dem Format des Wertes in Ihren DateAndTimeOfPerformance Variable. Das Steuerelement ist nicht in der Lage, es in die richtige Datumzeit zu analysieren. Überprüfen Sie das Format.

Überprüfen Sie auch die Kultur. Es kann Probleme verursachen und DateTime in ein Format bringen, das datetimepicker nicht erkennt.

Verwenden Sie das Steuerelement mit datetimepicker und überprüfen Sie den verwendeten Wert. Sie können dann von dort aus gehen.