允许非填充字段

时间:2011-12-18 18:49:20

标签: asp.net-mvc-3 validation

我有一个包含几个属性的ASP.NET MVC视图的模型:

  • 主题
  • 消息
  • 编号

虽然需要主题和消息,但不需要Id(它是隐藏的并且仅设置 对于现有的条目)。不幸的是,MVC根据需要验证它(If字段 是必需的)即使我没有设置必需属性。

有人有解决方案吗?这里没有找到解决方案,也许只是在寻找错误...

亲切的问候, 的Sascha

2 个答案:

答案 0 :(得分:1)

如果IdInt ...您可以尝试将其设为Int?(可以为空)。 如果它是nullabe,我认为MVC不会验证它。

另一种方法是将隐藏的默认值放在一个默认值中,让我们说一个" -1" ...然后在控制器上你可以检查它。

答案 1 :(得分:1)

默认情况下,ASP.Net Mvc会将非可空属性视为“必需” - 即使您未向属性添加[Required] attrtibute也是如此。如果您的ID属于int类型 - 它不可为空,因此也是必需的。

您基本上有两种选择:

  1. 将您的Id属性更改为int? - 即可以为空的int。
  2. 将MVC的默认设置更改为不根据需要考虑非可空属性。
  3. 选项1是直截了当的。对于选项2,将以下内容添加到global.asax

    中的Application_Start方法

    DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = true;