ASP.NET MVC 3:以编程方式将DataAnnotation(RequiredAttribute)添加到视图模型中

Jon*_*ott 2 asp.net validation asp.net-mvc asp.net-mvc-3

我正在使用javascript不显眼的验证.我有一个视图模型,我正在重复使用几种形式,在某些形式中,视图模型上的一些属性是必需的.在其他形式上,他们不应该.有没有办法以编程方式在属性上设置[必需],以便我可以完成此操作?

谢谢!

Tom*_*mmy 8

无法使用DataAnnotations完成,因为这些是在编译时实现的,无法动态添加.你也可以

创建具有正确注释的不同视图模型

要么

让您发送视图模型的服务根据其来自的操作检查模型,并返回可附加到模型状态的验证错误列表

要么

在ViewModel上放置一个属性,string IsBeingUsedFor并将其与RequiredIf DataAnnotation结合使用. 以下是使用条件DataAnnotations构建的库的示例.然后你可以说,[RequireIf("IsBeingUsedFor","Action_A")]

这些不一定是所有选项,而是一些更清洁的选项.您可以在JavaScript中完成所有操作,但是如果"坏人"提交表单并绕过客户端验证,您将丢失服务器端验证并在应用程序中打开一些漏洞.