In meiner ASP MVC 5-Webanwendung muss ich ein Datum in einem bestimmten Format anzeigen. Wenn die Seite geladen wird, ist der Text korrekt formatiert.ASP MVC 5 Datumsformat Validierung Problem
Das Feld definiert ist, wie folgt aus:: Aber wenn Sie den Wert bearbeiten oder einfach zu schreiben versuchen, wird der Validierungsfehler angezeigt
@*Creation*@
<div class="form-group">
@Html.LabelFor(model => model.Creation, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.Creation, "{0:dd/MM/yyyy}", new { @class = "form-control"})
@Html.ValidationMessageFor(m => m.Creation)
</div>
</div>
Die Eigenschaft Viewmodel ist definiert als:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Creation", ResourceType = typeof(Resources.Resources))]
public DateTime Creation { get; set; }
Der Screenshot wurde mit Firefox-Browser erstellt. Wenn ich dasselbe bei Edge mache, wird die Validierung bestanden, aber das Abwarten dieser Eigenschaft für die post-Methode ist ungültig (ein Standarddatumswert).
Wie kann ich dieses Problem beheben?
Als Matt Spinks hat zur Kenntnis genommen, das ist eine 'jquery.validate.js' Ausgabe (validiert Daten basierend auf MM/TT/JJJJ und Sie müssen den Validator überschreiben (siehe [diese Antwort] (http://stackoverflow.com/questions/30594128/error-in-date-validation-mvc/30609111) # 30609111) für weitere Details –
Der Grund, warum es in Edge (und in Chrome) funktioniert, ist, weil Sie '[DataType (DataType.Date)] haben 'was generiert' type = "date" 'was bedeutet, dass die Browser-Implementierung eines DatePickers angezeigt wird, aber damit das funktioniert, müssen Sie' DataFormatString = "{0: yyyy-MM-dd}" '(ISO-Format) verwenden) –
Siehe auch [diese Antwort] (http://stackoverflow.com/questions/39677035/date-of-birth-validation-keeps-showing/39682410#39682410), die ein Skript enthält, das Sie in Ihrer Ansicht für die Clientseite einschließen können Validierung. –