这件事让我伤心.基本上我所拥有的是自定义ActionFilter(继承自ActionFilterAttribute并实现IActionFilter的类).它看起来像这样
public class ValidationFilterAttribute : ActionFilterAttribute, IActionFilter
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
// do some stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
这就是FilterConfig的样子
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new ValidationFilterAttribute());
}
}
Run Code Online (Sandbox Code Playgroud)
但每当我启动项目时,都会有一个例外情况
给定的过滤器实例必须实现以下一个或多个过滤器接口:IAuthorizationFilter,IActionFilter,IResultFilter,IExceptionFilter.
但显然ValidationFilterAttribute实现了其中一个接口.我错过了一些非常基本的东西吗?我无法弄清楚出了什么问题.
在你的基类前缀System.Web.Mvc,我有一个你可能正在使用的"预感" System.Web.Http.Filters.ActionFilterAttribute.
那么你必须覆盖
OnActionExecuting(ActionExecutingContext filterContext)
Run Code Online (Sandbox Code Playgroud)
事情会好的.
正如您所看到的,已经ActionFilterAttribute实现IActionFilter了,因此您无需指定它.
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |