Ninject 和 MVC3 控制器和操作上的依赖注入操作过滤器存在问题

2024-04-04

最近,我决定删除控制器中的一堆操作级别过滤器,并用单个控制器级别过滤器替换它们。

现在我收到此错误消息。



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(使用前将#替换为@)

Ninject 和 MVC3 控制器和操作上的依赖注入操作过滤器存在问题 的相关文章

  • ASP.Net MVC 中错误视图的动态布局

    我有两个动作 称为 a 和 b 我对他们也有两种看法 这些视图的布局是不同的 为一个 Layout Views Shared X cshtml for b Layout Views Shared Y cshtml 错误视图也是共享的 如何为
  • 如何使用asp.net mvc EditorTemplate

    我读到 EditorTemplates 是自动加载的 但是从 asp net mvc 2 到现在的 razor 3 我仍然无法让它工作 我的模型如下所示 public class RoleViewModel public int RoleI
  • “System.Web.Mvc.HtmlHelper”没有名为“Partial”的适用方法

    我收到此错误 错误CS1973 System Web Mvc HtmlHelper 没有适用的 名为 Partial 的方法 但似乎有一个扩展方法 姓名 扩展方法无法动态分派 考虑 强制转换动态参数或调用扩展方法而无需 扩展方法语法 从我在
  • Action Filter 中的 UnitOfWork 似乎正在缓存

    我有一个使用 IoC Unity 的 MVC 3 站点 我的模型是使用 EF4 和 POCO 生成的 我正在使用操作过滤器来提交我的工作单元 public class UseUnitOfWorkAttribute ActionFilterA
  • MVC3 将多个字段验证为单个属性

    我正在尝试验证包含两个字段的电话号码 第一个字段显示区号 另一个字段显示剩余的电话号码数字 要求是 它们都是必需的 它们必须是数字 区号字段最多为 6 位数字 电话号码字段最多为 10 位数字 两个字段都需要显示一条消息 例如 如果缺少区号
  • 基于字符串创建ViewBag属性

    有没有办法基于字符串创建和使用 ViewBag 的动态属性 就像是 ViewBag CreateProperty MyProperty ViewBag Property MyProperty Myvalue 谢谢 我刚刚发现 ViewDat
  • 使用 htmlAttributes 正确制作 ActionLink 扩展

    我为我的 ActionLink 使用自定义扩展 我添加了一个属性data url这意味着被翻译成一个属性data url 即用破折号替换下划线 这是使用我的自定义扩展的链接 1 Ajax ActionLink Add MyRoutes Ge
  • ModelClientValidationRule 冲突

    我已将 vs 2011 开发人员预览版与 vs 2010 并排安装 现在 当我在 vs 2010 中运行我的 asp net mvc 3 项目时 我在使用 ModelClientValidationRule 的项目中收到以下错误 Syste
  • MVC 3 保持短网址

    我有 MVC3 应用程序 我想在其中保留短 URL 最好的或干净的方法是什么 假设我有两个控制器 帐户和主页 我在帐户控制器中拥有所有与帐户相关的任务登录 注销 配置文件 常见问题解答等 家庭控制器中的所有主要任务 如任务 A 任务 B 和
  • 在asp.net MVC中不使用LabelFor Helper获取DisplayName属性

    检索模型中项目的显示名称属性的最佳方法是什么 我看到很多人使用 LabelFor 助手来处理所有事情 但如果我只想列出数据 则标签不合适 如果我只想将其打印出来 比如说一个段落 是否有一种简单的方法可以获取名称属性 p p p 显然 为了避
  • 更改 iis 7 的 Inet 根文件夹

    我面临着一个非常令人恼火的挑战 我必须在生产服务器中部署 ASP NET MVC 3 应用程序 在这个生产服务器中我有两个驱动器C and D 我有权将我的网站放在D 数据文件夹我不能使用C 不幸的是 IIS 创建了Inet目录在C 显然
  • 如何在 html 助手中使用 asp.net mvc 3 razor 执行内联样式

    我想做这个 Html TextBoxFor x gt x BackgroundColor new style width 20px background color Model BackgroundColor 然而它不会渲染我的 Mode
  • 您可以在 @Helper 中使用 @Helper 吗?

    我不确定这是否可能 我有一堆 Helper位于视图内以及其他视图中 helper ViewHelper1 helper ViewHelper2 etc 我有在视图和其他视图中使用的重复代码 if Model Entity Model Enu
  • 无法安装 MvcMailer

    我尝试通过在程序包管理器控制台中输入命令 Install Package MvcMailer 来安装 Mvc Mailer 但收到以下错误消息 Successfully installed MvcMailer 1 1 Successfull
  • System.ArgumentException:程序集中的重复类型名称

    我正在使用 EF 4 1 开发 ASP Net MVC 3 Web 应用程序 从今天开始 我收到此错误 System ArgumentException 程序集中的重复类型名称 我不知道是什么原因造成的 执行查找时 它发生在我的存储库中 p
  • 如何选择性地呈现 ASP.Net MVC 3 中的某个部分?

    在我的网站上 我有一个部分 浮动侧边栏 我只想为一部分用户 管理员 呈现该部分 我希望我可以将逻辑放入主布局中 以确定是否应显示该部分 但如果未呈现该部分 则会导致页面上出现错误 示例代码 Layout cshtml code if use
  • Windows Workflow Foundation 4 和 ASP.NET MVC

    我们正在评估 Windows Workflow Foundation 4 在基于 MVC 3 的 Web 应用程序中的使用 我们希望为不同的项目创建灵活的订单工作流程 有人知道有关此类应用程序的一般架构或实践实验室的详细信息吗 一些具体问题
  • 自定义 ViewEngine ASP.NET MVC 3

    我正在为 ASP NET MVC 的自定义视图引擎寻找最简单的解决方案 这样我就可以超越路径来寻找视图 实际上 我正在尝试在我的解决方案中构建一个主题系统 我查看了网络 但发现了很难学习和实施的解决方案 Thanks 这就是我用的 它在主题
  • ASP.NET MVC - ValidateAntiForgeryToken 过期

    在网页中 我们提供一个超链接 GET 用户可以单击该超链接进行身份验证 Html ActionLink Please Login MyMethod MyController 这映射到以下返回视图的控制器方法 RequireHttps pub
  • Ninject 绑定所有实现相同接口的类

    我有一个接口类 public interface IStartUpTask bool IsEnabled get void Configure 我有多个类实现相同的接口 其中一个类如下所示 public class Log4NetStart

随机推荐