2012-11-20 69 views
0

我需要做的是在MVC执行控制器之前以及完成生成视图之后执行一些代码。 有没有办法做到这一点?拦截ASP.NET MVC 4响应生成

我需要在MVC应用程序与现有的缓存系统集成,因此:

  • 执行控制器之前,实例化一个缓存。
  • 生成视图后,销毁缓存。
+1

你有什么尝试?看看['ActionFilter'](http://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute(v = vs.108).aspx)属性。 – CodeCaster

+1

[ActionFilter或HttpModule](http://odetocode.com/blogs/scott/archive/2011/01/15/http-modules-versus-asp-net-mvc-action-filters.aspx)讨论应该有所帮助 – EdSF

回答

1

Action Filter属性使您能够将代码拦截器注入MVC​​控制器的请求中,该控制器可以在Controller或其Action方法执行之前和之后执行。

更多详细信息,请参见:Understanding Filter Interceptors by Scott Guthrie

+0

我不得不使用OnActionExecuting和OnResultExecuted来处理我想要的事件。谢谢 –

0

明显的答案是Application_BeginRequestApplication_EndRequest在global.asax或我缺少的东西?

+0

我记得尝试过这些,但他们并没有被解雇。 –

0

如果你想挂到页面事件,你可能会想实现自己的WebViewPageWebViewPage类。具体来说,您需要修饰Execute方法。 Phil Haack has a blog post关于如何做到这一点。