Asp.net mvc 2 ASP.NET MVC中的全局操作筛选器

Asp.net mvc 2 ASP.NET MVC中的全局操作筛选器,asp.net-mvc-2,Asp.net Mvc 2,是否可以创建一个全局操作筛选器,该筛选器将自动应用于ASP.NET MVC应用程序中所有控制器中的所有操作?我想要RubyonRails中ApplicationController中定义的类似“before_filter”的内容 感谢您的帮助。创建您自己的基本控制器并从中继承。这取决于您想对其执行什么操作。在许多情况下,vucetica和Adeel之前的回答将是您真正想要做的。但是,它们都不符合您列出的条件:自动应用于所有操作/控制器 要做到这一点,您需要在Global.asax中为应用程序Be

是否可以创建一个全局操作筛选器,该筛选器将自动应用于ASP.NET MVC应用程序中所有控制器中的所有操作?我想要RubyonRails中ApplicationController中定义的类似“before_filter”的内容


感谢您的帮助。

创建您自己的基本控制器并从中继承。

这取决于您想对其执行什么操作。在许多情况下,vucetica和Adeel之前的回答将是您真正想要做的。但是,它们都不符合您列出的条件:自动应用于所有操作/控制器

要做到这一点,您需要在Global.asax中为应用程序BeginRequest事件实现一个处理程序。有关更多信息,请参阅


更新-2010年7月27日:MVC 3预览版1,其中包括一个全局过滤器框架,如您所说的。它们通过Global.asax注册,可以应用于所有控制器或基于特定标准。

感谢您的回答。首先,我认为它会起作用,但在尝试了这种方法之后,我注意到应用程序_BeginRequest获得了所有请求,包括对.js、.css、.jpg和页面的其他资源的请求。因此,它将在一个页面上运行多次,可能会造成严重的过载。有没有一种简单的方法可以只过滤页面内容的请求,跳过所有的.js、.css、.jpg请求,而不解析请求的URL?您可以查看路由引擎中的信息,以确定是否正在处理控制器/操作。老实说,Adeel的答案是这样做的正确方法,我只是指出,如果你想要一个自动的全局处理程序,这是另一种选择。如果你不想等待MVC3,我的同事写了一些我们用来自动匹配过滤器和动作的东西(无论是始终,还是基于条件)。这取决于国际奥委会的温莎,但您始终可以修改该部分。谢谢,应该可以,但我正在寻找一种非常简单的方法,不需要太多的编码。@vucetice您应该更喜欢组合而不是继承。您可以尝试使用库。