MVC验证以ddMMyyyy格式接受DateTime

Pra*_*oir 6 asp.net-mvc unobtrusive-validation

我只是想在提交时接受ddMMyyyy格式的日期.但它给出了一个错误

FromDate字段必须是日期.

在此输入图像描述

但是,当我在MMddyyyy中输入日期时,它会严格接受pkkttrfg.
我的模型是

public class CompareModel 
{
    [Required]
    [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
    public DateTime FromDate { get; set; }

    [Required]
    [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
    public DateTime TODate { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我的观点部分是

<div class="form-group">
        @Html.LabelFor(model => model.FromDate, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.FromDate)
            @Html.ValidationMessageFor(model => model.FromDate)
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.TODate, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.TODate)
            @Html.ValidationMessageFor(model => model.TODate)
        </div>
    </div>


    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

nik*_*ias 8

问题是在幕后使用javascript来验证这一点,你需要覆盖它.

jQuery(function ($) {
    $.validator.addMethod('date',
    function (value, element) {
        if (this.optional(element)) {
            return true;
        }

        var ok = true;
        try {
            $.datepicker.parseDate('dd/mm/yy', value);
        }
        catch (err) {
            ok = false;
        }
        return ok;
    });
});
Run Code Online (Sandbox Code Playgroud)

这是从这个答案


10K*_*KY4 5

试试吧

 <system.web>
    <globalization culture="en-GB"/>
</System.web>
Run Code Online (Sandbox Code Playgroud)

它对我有同样的问题