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

Stu*_*ser 9 validation asp.net-mvc data-annotations asp.net-mvc-3

来自David Hayden的博客文章:

IValidatableObject并不总是触发

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

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

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

if (TryModelUpdate(model))
Run Code Online (Sandbox Code Playgroud)

PS道歉,如果这是重复,我没有在SO上发现任何类似的东西.