【发布时间】:2014-09-09 17:01:05
【问题描述】:
我有一个从ApiController 扩展的基本控制器类并指定了这个抽象方法:
[HttpPost]
[ValidateModelFilter(Argument = "dto")]
public abstract Task<IHttpActionResult> Post(PostDTO dto);
这个方法会被所有的子类实现,但是过滤器会在他们没有意识到的情况下被隐式应用。
这种方法效果很好,我的过滤器被执行了。但是我的Argument 属性没有设置为"dto"。
这是我的ValidateModelFilter 班级:
public class ValidateModelFilter : ActionFilterAttribute, IActionFilter, IFilter
{
public string Argument { get; set; }
public override void OnActionExecuting(HttpActionContext actionContext)
{
//Some validation here...
}
}
除了我的Argument 属性始终为null 之外,一切正常,无论我应用这样的过滤器:[ValidateModelFilter] 还是这个[ValidateModelFilter(Argument = "dto")]
另外请注意,我目前正在使用OWIN 管道和Ninject 进行依赖注入。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 rest asp.net-web-api