如何完成Brad Wilson的帖子中所述的“模型级”验证:
最后,如果您希望验证可以访问多个属性,那么将其作为模型级验证(以便它将整个模型作为模型参数,而不是单个属性值)。
来自http://forums.asp.net/p/1457591/3650720.aspx
我尝试了以下
[MyCustomValidation("SomeStuff")]
public class MyClass
{
// properties
}
IsValid
替换MyCustomValidation
中的断点不会触发任何内容,代码只会继续。 MyCustomValidation
构造函数中的断点有效,但之后没有。
这不是model-level validation
所指的那个吗?
dirtygopher指向http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html的链接显示模型验证,唯一的问题是验证属性放在父类的子属性上。
我正在寻找一种方法将validation-attributes
直接放在课堂上,正如我在上面的例子中所展示的那样。
答案 0 :(得分:2)
在最新的asp.net mv 2附带的RegisterModel中有一个很好的例子。
查看“PropertiesMustMatch”属性及其用法。
答案 1 :(得分:0)
这是Brad Wilson博客中的好帖子 http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html. 我希望它能帮助您理解模型级验证概念。
答案 2 :(得分:0)
如果你正在使用MVC3,这是这个问题的另一个答案。此示例创建一个属性,该属性可以附加到单个属性,并通过传递属性名称和对象值使其依赖于另一个属性。
结果更加优雅,因为该属性附加到实际验证的对象。
http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx