【发布时间】:2010-03-16 00:27:22
【问题描述】:
我正在使用 MVC 2 和我构建的 LinqToSql 项目中的一些模型。我看到,当我在编辑具有来自模型的 DateTime 字段的表单后发回控制器操作时,MVC Html.ValidationMessageFor() 助手将在日期文本框旁边很好地显示一个错误。
当您在 Controller Action 中测试 ModelState.IsValid() 时,这似乎会自动发生,就好像 MVC 模型绑定自动知道 DateTime 字段不能为空一样。我的问题是......我在这些 LinqToSql 生成的类中有一些其他字符串字段是不可为空的(在传递给 LinqToSql 生成的类的 Sql Server 中标记为不可空),那么 MVC 先生为什么不接并在我为这些字段添加的 ValidationMessageFor() 占位符中显示“必需”消息,就像为 DateTime 字段一样?
当然,我已经成功添加了 MetadataType(typeof) 伙伴类来覆盖这些不可为空的字符串字段,但是当 LinqToSql 生成的类已经包含足够的内容时,将所有这些元数据添加到伙伴类中确实是多余的MVC 可以嗅出的信息,就像它对 DateTime 所做的那样。如果 MVC 验证自动与 DateTime 一起使用,为什么这些不可为空的字段也不能呢?
【问题讨论】:
标签: asp.net-mvc-2