我有这个设置:
视图模型:
public class Myviewmodel { public DateTime? Start { get; set; } }
视图:
@model MvcApplication2.Models.Myviewmodel @using (Html.BeginForm()) { @Html.EditorFor(x => x.Start) }
产生的HTML:
<input class="text-Box single-line" data-val="true" data-val-date="The field Start must be a date." id="Start" name="Start" type="datetime" value="" />
此HTML包含不显眼的验证属性.这是为什么?我的印象是,如果viewmodel属性是可以为空的DateTime,则不会进行验证?
解决方法
问题与全球化有关.由于我支持多种文化,我将包括jquery-globalize脚本并添加以下内容:
$(document).ready(function () { $.validator.methods.date = function (value,element) { return Globalize.parseDate(value); } });
Globalize.parseDate在空值上失败.这仅在可空日期字段中变得明显,其中空值应被视为有效.如果我用它替换它
return value == '' ? null : Globalize.parseDate(value);
一切都按预期工作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。