【发布时间】:2011-06-28 18:09:39
【问题描述】:
我有一个包含值类型(例如bool、DateTime、枚举等)的模型,并且我用[Required] 属性标记了属性。
我加载页面,不提供任何值,然后提交表单。客户端验证已关闭。显然ModelState 是无效的。
然而,当表单返回给客户端时,这些字段将填充类型的默认值(例如false、DateTime.MinValue、第一个枚举值等)。这不是我真正想要的,我希望这些字段保持空白。
目前我通过使属性可以为空(例如bool?)来解决这个问题。这是“正确”的做法吗?还是我应该做其他事情来确保 MVC 不会自动使用默认值填充值类型属性?
【问题讨论】:
-
或者我可能会被告知我应该使用只有字符串的 View Model 类...?不幸的是,这有点晚了,部分原因是要求,部分原因是我的经验不足。我会保存到下一个项目!
-
我会坚持使用可空选项。这是我想做的事情,除了可能不使用 MVC 客户端验证并创建自己的验证之外,我找不到更简单的解决方案。不过,这似乎工作量太大了。
标签: asp.net-mvc asp.net-mvc-3 validation