加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为可为空的DateTime呈现的不显眼的验证属性

发布时间:2020-12-16 06:27:11 所属栏目:asp.Net 来源:网络整理
导读:我有这个设置: 视图模型: 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-li
我有这个设置:

视图模型:

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);

一切都按预期工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读