[英]How can I get reference to ModelState property in my ActionFilter?
这是我的类,基本上用于UnitForWork模式,即将所有内容保存在事务中:
public class TestFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
if (filterContext.HttpContext == null)
throw new NullReferenceException("null");
else
{
ObjectContext objectContext = (ObjectContext)filterContext.HttpContext.Items
[ObjectContextManager.TestContext];
if (objectContext != null)
{
objectContext.SaveChanges();
}
}
}
}
这很好用。 但是,我还想确保仅当我的操作方法中的ModelState.IsValid属性为true时才保存它。 我怎么能这样做?
filterContext.Controller
为您提供ControllerBase
而不是Controller
引用。 如果将其ModelState
为Controller
它将使您可以访问ModelState
,它是Controller类的公共属性,例如
var val = ((Controller)filterContext.Controller).ModelState.IsValid;
目前,我不知道这种转换的含义。 使用前请先咨询一下后果。
更新:
您还可以访问Modelstate属性,例如
filterContext.Controller.ViewData.ModelState
它不涉及任何转换
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.