在动作过滤器中检查ModelState

时间:2011-09-14 20:22:07

标签: asp.net-mvc-3

我可以使用ModelState.IsValid方法检查自定义操作过滤器中的OnActionExecuting吗?

1 个答案:

答案 0 :(得分:10)

是。 ModelState是ViewData的一部分。所以你可以使用:

filterContext.Controller.ViewData.ModelState

例如,如果您想在执行操作后注入一些代码,但仅在ModelState.IsValid == true时注入,则可以执行以下操作:

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
    if (!filterContext.Controller.ViewData.ModelState.IsValid) return;
    // do something
}