嗨,我正在尝试做一件似乎很简单的事情,并且以这种方式进行了记录,但由于某种原因,它并不那么容易。

基本上我写的是这样的:

public class CacheControllAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        //do something
        base.OnResultExecuting(filterContext);
    }
}

但是,当我尝试将其用于这样的操作结果时:
[CacheControllAttribute]
public ActionResult SomeAction()
{
    //whatever
}

我的自定义覆盖函数永远不会被调用...

有什么想法吗?或如何以不同方式实现?

最佳答案

一个可能很愚蠢的建议,但是您是否将其添加到global.asax中?
这是我的一个应用程序中的一个示例:

public class MvcApplication : System.Web.HttpApplication
{
  public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  {
    filters.Add(new LogonAuthorize());
    filters.Add(new HandleErrorAttribute());
  }
}

关于c# - 自定义ASP.NET MVC ActionFilterAttribute- Hook 永远不会被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6510362/

10-17 02:49