Validierung von DateTimePicker funktioniert nicht richtig

Zunächst habe ich diese Lösung für mein Problem verwendet:jQuery Datumsüberprüfung MVC 4 .Net 4.5.1 UK Datum "muss ein Datum sein" Fehler

Wenn ich ein gültiges Modell poste, funktioniert alles einwandfrei.Wenn ich ein ungültiges Modell ohne Datum poste, gilt dies auch für die Gültigkeit.Aber wenn ich ein ungültiges Modell mit Datum poste, kommt es ausnahmsweise dazu, dass die Objektreferenz nicht auf eine Instanz eines Objekts festgelegt ist.

Hier ist das Datumsfeld im Modell:

[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy HH:mm}")]
[Display(Name = "Date")]
public DateTime Date{ get; set; }

Hier ist Code in create.cshtml

<div class="form-group">
        @Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.Date, "{0:dd.MM.yyyy HH:mm}", new { @Value = ViewBag.Date, @class = "form-control", @id = "datetimepicker" })
            @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" })
        </div>
    </div>

Javasript in layout.cshtml:

<script type="text/javascript">
jQuery('#datetimepicker').datetimepicker({
    format: 'd.m.Y H:i',
    lang: 'cs',
    dayOfWeekStart: 1
});

Und hier wird die jQuery-Datumsüberprüfung überarbeitet:

date: function (value, element) {
$.culture = Globalize.culture("cs-CZ");
var date = Globalize.parseDate(value, "dd.MM.yyyy HH:mm","cs-CZ");
        return this.optional(element) ||
                       !/Invalid|NaN/.test(new Date(date).toString());
},

BEARBEITEN also habe ich es endlich zum Laufen gebracht, indem ich die Datumsfunktion in einen regulären Ausdruck wie diesen geändert habe:

return value.match(/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2])[/., -](19|20)?\d{2} ([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/);

Antworten auf die Frage(0)

Ihre Antwort auf die Frage