【发布时间】:2011-09-24 12:27:34
【问题描述】:
您好,我正在尝试做一些看似简单的事情,并且以这种方式记录在案,但由于某种原因,它并不那么容易。
基本上我是这样写的:
public class CacheControllAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
//do something
base.OnResultExecuting(filterContext);
}
}
但是,当我尝试在这样的操作结果上使用它时:
[CacheControllAttribute]
public ActionResult SomeAction()
{
//whatever
}
我的自定义覆盖函数永远不会被调用...
对此有什么想法吗?或者如何以不同的方式实现?
【问题讨论】:
-
好像没问题。您使用的是哪个 MVC 版本?
-
这是 MVC 2,我开始认为可能是其他东西阻止了过滤器执行或类似的事情,这是否可以像整个执行流程一样以某种方式进行追踪?
-
我遇到了完全相同的问题。即使我在 globalFilterCollection 中添加了过滤器,我也收到了一个错误,我应该实现 IActionFilter。过了一会儿,我发现我使用的是 System.Web.**Http.Filters**.IActionFilter 和 System.Web.**Http.Filters**.ActionFilterAttribute 而不是正确的 System.Web.**Mvc* *.IActionFilter 和 System.Web.**Mvc**.ActionFilterAttribute 可能会对某人有所帮助。
标签: c# asp.net-mvc actionfilterattribute