asp.net - DataAnnotation [DataType(DataType.Date)] 使我的字段不必要地成为必填项

标签 asp.net asp.net-mvc validation data-annotations

我的 ViewModel 中有以下字段:

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

产生以下标记:

<input class="input-validation-error form-control text-box single-line" data-val="true" data-val-date="The field Preferred date must be a date." data-val-required="The Preferred date field is required." id="EventDate" name="EventDate" type="date" value="">

如果用户未选择值(即将此字段留空 - value=""),则返回到 ViewModel 的数据为“{1/1/0001 12:00:00” AM}' 且 ModelState.IsValidfalse

我不希望此字段为必填字段!

我尝试用我的标记替换标记:

<input class="form-control text-box single-line" id="EventDate" name="EventDate" type="date" value="1/1/1980">

但是,返回值仍然是“{1/1/0001 12:00:00 AM}”,并且 ModelState.IsValidfalse

如何(仅)禁用此字段上的必需验证?提前致谢。

最佳答案

感谢 Murilo,我将发布答案:

我将 ViewModel 字段更改为:

public DateTime EventDate { get; set; }

public Nullable<DateTime> EventDate { get; set; }

关于asp.net - DataAnnotation [DataType(DataType.Date)] 使我的字段不必要地成为必填项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879538/

相关文章:

c# - 是否可以为 asp.net web 表单应用程序编写 action-filter 属性?

c# - jQuery 发布到 Controller 并重定向到 ASP.NET MVC View

c# - 从 MVC Controller 获取 JSON 对象

c# - 路由中的参数不起作用 MVC 3

javascript - 文本框字符验证

c# - C# ConcurrentDictionary InvalidOperationException

c# - 回发后将焦点设置到任何控件

javascript - 如何使 window.showmodaldialog 在 chrome 37 中工作?

javascript - 带有 scope.$watch 的 Angular 指令强制验证其他字段

javascript - 禁用 Bootstrap 验证器提交按钮,直到整个表单有效