【发布时间】:2010-11-07 16:08:02
【问题描述】:
我有一个从动作过滤器属性派生的自定义验证属性。目前,该属性仅设置一个 ActionParameter 值,指示验证的项目是否良好,然后该操作必须具有确定如何处理信息的逻辑。
public class SpecialValidatorAttribute: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// ... valdiation work done here ...
filterContext.ActionParameters["SpecialIsValid"] = resultOfWork;
base.OnActionExecuting(filterContext);
}
}
[SpecialValidator]
public ActionResult Index(FormCollection collection, bool SpecialIsValid)
{
if(!SpecialIsValid)
// add a modelstate error here ...
// ... more stuff
}
我想在属性的 OnActionExecuting() 方法中执行 ModelState.AddModelError(),这样可以让控制器执行此逻辑。
我尝试将 ModelState 属性添加到属性,但此数据似乎无法传递给属性。
有没有办法从属性中获取对 ModelState 的访问权限?
【问题讨论】:
标签: c# asp.net-mvc attributes