如何使ActionFilter on action方法优先于控制器上的相同ActionFilter

Jer*_*eir 5 asp.net-mvc

由于asp.net mvc自11月以来发生了很大的变化,有没有人有这个问题的解决方案:

在Controller和Action上解析FilterAttributes

Phil说控制器上的ActionFilter只是将属性应用于控制器的所有操作方法的简写,如果我在控制器和操作方法上放置相同的ActionFilter属性,它就会运行两次.但这似乎不是自然行为,因为编译器甚至不会让你多次直接在一个方法上放置相同的属性.

rob*_*rtz 8

通过在每个过滤器上指定Order属性,过滤器可以优先于另一个过滤器.例如...

[MyFilter(Order=2)]
public class MyController : Controller
{
    [MyFilter(Order=1)]
    public ActionResult MyAction()
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,action方法上的过滤器将在控制器上的filer之前执行.

HTH