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
操作触发两次