c# – 该字段必须是日期 – Chrome中的DatePicker验证失败 – mvc

我有奇怪的问题。我的日期验证在Chrome中无效。我试过this的答案,但它并没有为我工作。

我在我的模型中有这个:

[Display(Name = "Date")]
[DataType(DataType.Date)]
public DateTime Date { get; set; }

我的看法:

<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)
</div>

$(document).ready(function () {
    $('.picker').datepicker({
        dateFormat: 'dd.mm.yy',
        changeMonth: true,
        changeYear: true,
        selectOtherMonths: true
    });
});

Opera和Firefox都可以使用,但Chrome不喜欢这种类型的日期。我不断收到以下错误字段’Date’必须是一个日期。

有任何想法吗?

UPDATE

当代码在部分视图中时,似乎有一个问题。当我将该代码复制到主页面时,验证工作正常。

我在主视图中插入局部视图,就像这样:

@Html.Partial("_CreateOrEdit", Model)

上面的代码在局部视图中:

@model Pro.Web.Models.Model

<div class="editor-field">
@Html.TextBoxFor(model => model.Item.Date, new { @class = "picker" })
@Html.ValidationMessageFor(model => model.Item.Date)

    

$(document).ready(function () {
$('.picker').datepicker({
    dateFormat: 'dd.mm.yy',
    changeMonth: true,
    changeYear: true,
    selectOtherMonths: true
});

</script>
});

UPDATE2

这毕竟不行。有时候它有效,有时候不行。我在日期点击了几次,有时候是验证通行证。在同一天,可能会有好的和错误的验证。

这是日期字段的输出html:

<div class="editor-field">
<input class="picker" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="date" name="Item.Date" type="text" value="1.1.0001. 0:00:00" />
<span class="field-validation-valid" data-valmsg-for="Item.Date" data-valmsg-replace="true"></span>
</div>
在这里完全一样(局部视图)

我通过删除验证属性并在服务器端执行验证来解决它:

$('#date').removeAttr("data-val-date");
http://stackoverflow.com/questions/16284385/the-field-must-be-a-date-datepicker-validation-fails-in-chrome-mvc

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 该字段必须是日期 – Chrome中的DatePicker验证失败 – mvc