2011-12-18 116 views
0

我有用于容纳几个性质的ASP.NET MVC视图模型:允许非填充字段

  • 主题
  • 消息
  • 标识

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

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

亲切的问候, 萨沙

+1

我们可以看到你的模型? – 2011-12-18 18:51:12

回答

1

如果IdInt ...你可以尝试使Int?(null的智力)。 如果它是nullabe,我认为MVC不会验证它。

另一种方法,将一个默认值放在那个隐藏的,让我们说一个“-1”...和在控制器上,你可以检查它。

+0

如果你可以为空,它不检查。 – Sascha 2011-12-19 13:36:59

1

默认情况下,ASP.Net Mvc会将不可空的属性视为'required' - 即使您没有将该属性添加到属性。如果您的ID是int类型 - 它是不可空的,因此是必需的。

您有两种基本选择:

  1. 您的ID属性更改为int? - 即一个可空INT。
  2. 将MVC的默认设置更改为不根据需要考虑不可空属性。

选项1很简单。选项2以下内容添加到Application_Start方法中在Global.asax的

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = true;