Asp.net mvc 2 关于asp.net MVC验证

Asp.net mvc 2 关于asp.net MVC验证,asp.net-mvc-2,Asp.net Mvc 2,我正在使用asp.net mvc 2,这里我有一个申请者,它有它的属性 其中提到了[Required],因此,如果我在项目中添加一个新视图,该视图的类型为strongly type with Applicator Class,并且只使用申请者类Html.TextBoxFor(Model=>Model.Property1)中的一个属性,并且当我使用Model.IsValid时,它返回False,因为我没有为其他必需属性使用提供的值(property2,property3,property4)。那么

我正在使用asp.net mvc 2,这里我有一个申请者,它有它的属性 其中提到了[Required],因此,如果我在项目中添加一个新视图,该视图的类型为strongly type with Applicator Class,并且只使用申请者类Html.TextBoxFor(Model=>Model.Property1)中的一个属性,并且当我使用Model.IsValid时,它返回False,因为我没有为其他必需属性使用提供的值(property2,property3,property4)。那么有没有办法为不同的视图使用相同的申请者类,并且只验证我在视图中使用过的属性,而不是视图中没有使用过的属性

那么,是否有任何方法可以为不同的视图使用相同的申请者类,并且只验证我在视图中使用过的属性,而不是那些在视图中未使用的属性

我建议您为每个视图创建视图模型,并使验证属性适应每个视图的需要

那么,是否有任何方法可以为不同的视图使用相同的申请者类,并且只验证我在视图中使用过的属性,而不是那些在视图中未使用的属性


我建议您为每个视图创建视图模型,并使验证属性适应每个视图的需要。

为视图创建相应的视图模型不是更容易吗?您试图使视图过于干燥,这会导致违反单一责任原则。@user460293 DRY代表不要重复您自己。在您的情况下-视图模型服务于多个视图,但只创建多个视图会更容易。为视图创建相应的视图模型不是更容易吗?您试图使其过于干燥,这会导致违反单一责任原则。@user460293 DRY代表不要重复自己。在您的情况下-视图模型服务于多个视图,但它会只需创建多个就可以了。谢谢,好的,我会这样做,但我们能做到我要求的吗?我想很明显NO@user460293,不,您不能,因为数据批注验证属性是在编译时烘焙的,并且您不能根据正在执行的操作动态修改/删除其中的一些属性。此外,这将是一种糟糕的设计好的,我会这么做,但我们能做到我要求的吗?我想这很明显NO@user460293,不,您不能,因为数据注释验证属性是在编译时烘焙的,并且您不能根据正在执行的操作动态修改/删除其中的一些属性。这也是一种糟糕的设计。
class Applicant{

 [Required]
 propert1{get,set;}
 [Required]
 propert2{get,set;}
 [Required]
 propert3{get,set;}
 [Required]
 propert4{get,set;}

}