C# 控制器上的同类型动作过滤器及其动作方法

C# 控制器上的同类型动作过滤器及其动作方法,c#,asp.net-mvc,C#,Asp.net Mvc,我定义了一个动作过滤器,如下所示: public class InvokeConditionAttribute : ActionFilterAttribute { private ConditionRule conditionRule; public InvokeConditionAttribute(ConditionRule conditionRule) { this.conditionRule = conditionRule; }

我定义了一个动作过滤器,如下所示:

public class InvokeConditionAttribute : ActionFilterAttribute
{
    private ConditionRule conditionRule;

    public InvokeConditionAttribute(ConditionRule conditionRule)
    {
        this.conditionRule = conditionRule;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // check condition rule
    }
}
参数中的ConditionRule是枚举类型。 然后我创建一个控制器,如下所示:

[InvokeCondition(ConditionRule.Condition1, Order = 1)]
public class AttendanceModificationController : Controller
{
    [InvokeCondition(ConditionRule.Condition2, Order = 2)]
    public ActionResult SomeAction()
    {
        //
    }
}
问题是没有调用方法级筛选器


是否可以在asp.net mvc中使用不同的参数定义相同的筛选器类型?

用属性修饰操作筛选器,并指定
AllowMultiple=true

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true)]
public class InvokeConditionAttribute : ActionFilterAttribute
{
    ...
}
现在,您的
OnActionExecuting
方法将为
SomeAction
操作触发两次