我有以下签名用asp.net mvc的动作奇怪的行为过滤AttributeUsage
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class UnitOfWorkAttribute : ActionFilterAttribute
根据MSDN的行为过滤器:
该物业的AllowMultiple指示是否的 你的属性的多个实例可以存在于一个元素上。如果设置为true,则允许多个 实例;如果设置为false(默认值),则只允许有一个 实例。
在MVC中,行为似乎有点奇怪。当我用这个属性修饰动作时,我发现过滤器的OnActionExecuting
方法执行了两次。
该过滤器仅在操作上声明,而不是在控制器上声明,并且我清除了任何全局过滤器。有人可以解释这种行为吗?
只是_AllowMultiple_这会导致_OnActionExecuting_被调用两次,或者你真的用两个属性实例来修饰你的动作吗? – Codo
@Codo,不,我不需要多个实例,因此将AllowMultiple设置为false可以解决问题,但它不能解释它。可能是asp.net mvc中的错误? –
这个动作确实没有发射两次?只有属性? – dknaack