我有一个包含几个属性的ASP.NET MVC视图的模型:
虽然需要主题和消息,但不需要Id(它是隐藏的并且仅设置 对于现有的条目)。不幸的是,MVC根据需要验证它(If字段 是必需的)即使我没有设置必需属性。
有人有解决方案吗?这里没有找到解决方案,也许只是在寻找错误...
亲切的问候, 的Sascha
答案 0 :(得分:1)
如果Id
是Int
...您可以尝试将其设为Int?
(可以为空)。
如果它是nullabe,我认为MVC不会验证它。
另一种方法是将隐藏的默认值放在一个默认值中,让我们说一个" -1" ...然后在控制器上你可以检查它。
答案 1 :(得分:1)
默认情况下,ASP.Net Mvc会将非可空属性视为“必需” - 即使您未向属性添加[Required]
attrtibute也是如此。如果您的ID属于int
类型 - 它不可为空,因此也是必需的。
您基本上有两种选择:
int?
- 即可以为空的int。选项1是直截了当的。对于选项2,将以下内容添加到global.asax
中的Application_Start方法 DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = true;