Ich habe Probleme mit dem Datum des Formats dd/MMM/YYYY auf MVC5 asp.net Projekt. Hauptsächlich in Chrome, da es anscheinend nur Datumsangaben im Format JJJJ/MM/TT akzeptiert.HTML5 Datum des Formats TT/MMM/JJJJ
Um das Verhalten in Browsern zu normalisieren, verwende ich eine jquery datetimepicker-Komponente.
Ich habe viele Dinge ausprobiert, aber Chrome sagt immer noch, dass das Datum nicht gültig ist. Auch danach definieren Sie die Eingabe als Text statt als Datum.
Auch wenn ich die Validierung für diese bestimmte Komponente (data-val = "false") deaktiviere, besteht Chrome weiterhin darauf, das Datum als ungültig zu markieren.
Modell:
public class order
{
[Key]
public int orderID { get; set; }
[Required]
public string comments { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}", ApplyFormatInEditMode = false)]
[Display(Name = "Date of Shipping")]
public DateTime date { get; set; }
}
Ansicht Datumseingabe:
<div class="form-group">
@Html.LabelFor(model => model.date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.date, new { htmlAttributes = new { @class = "form-control datetimepicker" } })
@Html.ValidationMessageFor(model => model.date, "", new { @class = "text-danger" })
</div>
</div>
Importe:
<script src="https://code.jquery.com/jquery-3.2.1.js"/script>
<link rel="stylesheet" type="text/css" href="~/Content/jquery.datetimepicker.min.css" />
<script src="~/Scripts/jquery.datetimepicker.full.min.js"></script>
Javascript:
<script type="text/javascript">
jQuery.datetimepicker.setLocale('es');
jQuery('#date').datetimepicker({
format: 'd/M/Y',
});
</script>
Mit '[Datatype (DataType.Date)]' und '[Displayformat (Dataformatstring = "{0: tt/MMM/JJJJ}", ApplyFormatInEditMode = true)] ist sinnlos, wenn Sie einen jquery datepicker verwenden (und dann können Sie den 'neuen {@type =" text "}' ' –
entfernen. Wenn Sie einen clientseitigen Fehler bekommen, ist es, weil' jquery.validate' Daten basierend auf validiert 'MM/TT/JJJJ' Format. Sie müssen den Validator neu konfigurieren, um Daten in Ihrem Format zu akzeptieren. –
Entfernen Sie '@type =" text "' - dieses Attribut ist nicht verwandt. Auch Ihr Datetimepicker-Format scheint falsch zu sein - es sollte '$ ('# date') sein. Datetimepicker ({format:" DD/MMM/YYYY "})'. Setzen Sie dann die clientseitige Validierung mit folgendem Wert: '$ .validator.methods.date = function (value, element) {return this.optional (element) || $ .datetimepicker.parseDate ('DD/MMM/YYYY', Wert); } ' –