如何在ASP.NET MVC中的所有操作中安装操作筛选器?

pup*_*eno 4 asp.net-mvc annotations action-filter

有没有办法有一个动作过滤器,比如

public class MyActionFilterAttribute : ActionFilterAttribute {
    public override void OnActionExecuting(ActionExecutingContext context) {
    ...
Run Code Online (Sandbox Code Playgroud)

自动应用于网站中的所有操作?

wom*_*omp 8

我不相信有一种开箱即用的方式来做到这一点.对简单站点最简单的方法就是在Controller级别应用过滤器.这是非常常见的,通常最好拥有自己的基本控制器类,以防万一这样的事情发生在你想要传播到所有控制器的地方.例如:

[MyActionFilter]
public class MyBaseController : Controller
{
  ...
}

public class HomeController : MyBaseController
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

话虽这么说,这是一篇博客文章,展示了如何实现应用程序范围的动作过滤器.看起来像是一小部分工作,但也许你可以使用这种技术.


Vic*_*riu 7

我知道这是一个老问题,但从ASP.NET MVC 3开始,您可以使用全局过滤器.