如何在MVC3中调用IValidatableObject Validate(ValdationContext)或包含在ModelUpdate中?

时间:2011-03-16 16:23:34

标签: asp.net-mvc asp.net-mvc-3 validation data-annotations

来自David Hayden's blog entry

  

IValidatableObject并不总是触发

     

这里有一个可能不明显的问题。如果存在属性级错误,ASP.NET MVC 3中的IValidatableObject将不会触发。正如我所提到的,ASP.NET MVC 3属性验证发生在对象验证之前。如果存在属性错误,ASP.NET MVC 3的设计将不会触发IValidatableObject,以免返回误报(感谢Microsoft的Brad Wilson今天确认这一点)。

为了实用性,我想在对象的一个​​集合中获取所有验证消息。

是否有一种简单的方法可以在不破解MVC源的情况下覆盖此默认行为? 我目前正在尝试在控制器中填充ValidationContext对象,并在以下的else块中调用object.Validate()

if (TryModelUpdate(model))

P.S。如果这是重复的道歉,我在SO上找不到类似的东西。

0 个答案:

没有答案