为什么我的非必需数据成员提供了所需的错误?

时间:2013-01-25 17:36:57

标签: asp.net-mvc razor data-annotations

这真的很奇怪。我有一个asp.net MVC应用程序,我正在做一些数据验证。

我有一些不需要的DateTime数据成员。事实上,我已经完全删除了所有注释。

这是对旧内部系统的重写,因此使用文本框可以输入日期。

出于某种原因,这些文本框会根据需要呈现!我甚至试图使用jQuery删除data-val和data-val-required属性。我使用浏览器调试器查看HTML,并且在javascript运行后属性消失。

导致这种情况的原因是什么?

From the Razor markup:
@Html.TextBox("MainStartDt", Model.MainStartDt.ToShortDateString(), new {@class="dateedit" })

from the view model:

public DateTime UsersAddedStartDt { get; set; }
public DateTime UsersAddedEndDt { get; set; }

我可以发布哪些其他信息来提供帮助。这似乎很简单,如果没有这样宣布,就不应该重新使用这些。

提前致谢!

1 个答案:

答案 0 :(得分:1)

DateTime不可为空,因此是必需的。如果您希望它是可选的,请将其设为可为空。

public DateTime? UsersAddedStartDt { get; set; }

这适用于所有非可空(值)类型,包括intdoublefloatshortGuid,{{1}等等。