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

Rei*_*aka 5 asp.net-mvc

我想Thread.CurrentCulture根据一些路径数据设置值,但是在计算路径之后和调用action方法之前,我找不到挂钩到该触发器的事件.

有任何想法吗?

Dar*_*rov 15

您可以编写自定义操作过滤器属性:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用此自定义属性修饰基本控制器.这里有一篇博客文章,说明了这种过滤器的示例实现.


And*_*tad 5

如果您想在每个操作上应用区域性,您可以创建一个基本控制器并重写该OnActionExecuting方法。