【发布时间】:2013-06-25 06:38:44
【问题描述】:
我有一个具有多个字符串属性的User 类,它们都是必需的。这些属性用于不同的操作,例如创建和更新。
在我的表单中,在创建操作时,我只使用了这些属性的一部分,因此,ModelState 无效。
有没有办法向ModelState 指定它应该只验证 POST 数据中包含的属性(在表单内)?那么缺失的属性会被忽略吗?
【问题讨论】:
标签: asp.net-mvc data-annotations modelstate
我有一个具有多个字符串属性的User 类,它们都是必需的。这些属性用于不同的操作,例如创建和更新。
在我的表单中,在创建操作时,我只使用了这些属性的一部分,因此,ModelState 无效。
有没有办法向ModelState 指定它应该只验证 POST 数据中包含的属性(在表单内)?那么缺失的属性会被忽略吗?
【问题讨论】:
标签: asp.net-mvc data-annotations modelstate
您可以使用不同的验证属性集为用户创建和其他操作创建不同的模型。
【讨论】:
是的,您应该为每个特定的操作方法创建不同的视图模型(如果它们有特定的要求)。
【讨论】:
您可以使用Foolproof 中的RequiredIf 属性来实现此目的:
using Foolproof;
[RequiredIf("Tab", "Information")]
public bool UW_AgentCreditReportsAknowlegement { get; set; }
只需使用其中一个属性并设置适当的条件。
【讨论】: