【问题标题】:Model-level validation模型级验证
【发布时间】:2010-01-31 06:20:45
【问题描述】:

如何完成 Brad Wilson 帖子中所述的“模型级”验证:

最后,如果您希望验证能够访问多个属性,则将其设为模型级验证(以便将整个模型作为模型参数,而不是单个属性值)。

来自http://forums.asp.net/p/1457591/3650720.aspx

我尝试了以下操作

[MyCustomValidation("SomeStuff")]
public class MyClass
{
     // properties
}

MyCustomValidationIsValid 覆盖中的断点不会触发任何事情,代码只是继续。 MyCustomValidation 的构造函数中的断点有效,但之后就没有了。

这不是model-level validation所指的吗?

更新:

dirtygopher 到http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html 的链接显示模型验证,唯一的问题是验证属性放在父类的子属性上。

我正在寻找一种将validation-attributes 直接放置到班级的方法,正如我在上面的示例中所展示的那样。

【问题讨论】:

  • 你找到一种方法来进行类级别验证了吗?谢谢
  • 我正在寻找同样的东西

标签: c# asp.net-mvc validation data-annotations


【解决方案1】:

在最新的 asp.net mv 2 附带的 RegisterModel 中有一个很好的例子。

查看“PropertiesMustMatch”属性及其用法。

【讨论】:

  • 你的意思是在新的项目文件中?
  • 是的。它位于模型文件夹中。
  • 使用 VS 2010 和 ASP.NET MVC 2 Preview 这就是为什么我没有看到这个。谢谢。
  • 这个例子没问题,但更喜欢有适当描述的博客文章
【解决方案2】:

这是 Brad Wilson 博客中的好帖子 http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html. 希望对您理解模型级验证概念有所帮助。

【讨论】:

  • 谢谢,这是我一直在寻找的,除了这篇文章只展示了如何对父模型的子模型进行验证。 IE。我可以将属性放在父模型的模型子属性上。我希望有一种直接的方法可以将属性放在整个类上,而不仅仅是它的属性。
  • 嘿,坏蛋,我正在寻找同样的东西。如果你发现了什么,请告诉我。
【解决方案3】:

如果您使用的是 MVC3,这是此问题的另一个答案。此示例创建一个可以附加到单个属性的属性,并通过传递属性名称和对象值使其依赖于另一个属性。

结果更优雅,因为属性附加到实际验证的对象。

http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2017-08-16
    相关资源
    最近更新 更多