代码之家  ›  专栏  ›  技术社区  ›  Rei Miyasaka

在调用操作之前发生的ASP.NET MVC事件?

  •  5
  • Rei Miyasaka  · 技术社区  · 14 年前

    我想设置 Thread.CurrentCulture

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  15
  •   Darin Dimitrov    14 年前

    你可以写一个习惯 action filter attribute

    public class CustomFilterAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            // This method is executed before calling the action
            // and here you have access to the route data:
            var foo = filterContext.RouteData.Values["foo"];
            // TODO: use the foo route value to perform some action
    
            base.OnActionExecuting(filterContext);
        }
    }
    

    然后你可以用这个自定义属性装饰你的基本控制器。这里有一个 blog post 说明这种滤波器的示例实现。

        2
  •  4
  •   Anders Fjeldstad    14 年前

    OnActionExecuting 方法。

        3
  •  1
  •   Luis Perez    9 年前

    如果要将筛选器添加到所有控制器,而不仅仅是选择控制器,则可以将其添加到“全局筛选器”。你这样做 Application_Start()

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
    
        // Register global filter
        GlobalFilters.Filters.Add(new CustomFilterAttribute ()); // ADDED
    
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }