最近,我决定删除控制器中的一堆操作级别过滤器,并用单个控制器级别过滤器替换它们。
现在我收到此错误消息。
Error activating LogActionFilter
More than one matching bindings are available.
Activation path:
1) Request for LogActionFilter
Suggestions:
1) Ensure that you have defined a binding for LogActionFilter only once.
我确信该错误与操作过滤器被绑定两次有关,因为这就是我所做的更改。但是,当我查看文档时here https://github.com/ninject/ninject.web.mvc/wiki/Conditional-bindings-for-filters我可以看到它指定/执行相同的操作。所以我真的不确定我做错了什么。
我的示例控制器
[LogAction]
public class SomeController : Controller
{
public ActionResult SomeAction()
{
}
}
我的注册码
public static void RegisterFilters()
{
Kernel.BindFilter<LogActionFilter>(FilterScope.Controller, 0)
.WhenControllerHas<LogActionAttribute>();
Kernel.BindFilter<LogActionFilter>(FilterScope.Action, 0)
.WhenActionMethodHas<LogActionAttribute>();
}
如果您的控制器及其操作之一同时具有 LogActionAttribute,就会发生这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)