在asp.net MVC应用程序中,我有以下属性:
...
public System.DateTime StartTime { get; set; }
...
并且,在视图中(在表单中):
<div class="form-group">
@Html.LabelFor(model => model.StartTime, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StartTime, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.StartTime, "", new { @class = "text-danger" })
</div>
</div>
在javascript中:
$("#StartTime").datepicker({
dateFormat: "dd/mm/yy",
});
我使用asp.net MVC的默认jquery验证得到以下错误:
字段StartTime必须是日期。
我可以用dd / MM / YYYY格式处理日期而在asp.net MVC中没有任何错误?
我遇到了同样的问题,问题的关键是dateFormat。如果您使用默认格式,则提交时没有问题,但如果您更改它,则提交时会出现问题。
我发现的解决方案是使用altField和altFormat。使用datepicker,您可以使用显示值的格式和具有不同格式的替代隐藏字段(altField)(altFormat)。要使用它,请执行以下操作:
$("#StartTime").datepicker({
dateFormat: "dd/mm/yy",
altField: $(this).val(),
altFormat: "M/dd/yy"
});