【问题标题】:ASP.Net MVC 3: Dependency injection with Ninject in ViewASP.Net MVC 3:在视图中使用 Ninject 进行依赖注入
【发布时间】:2011-07-14 16:49:59
【问题描述】:

如何在 MVC 3 的视图中使用 Ninject 进行依赖注入? 我现在正在使用 Ninject 2.2 和 Ninject.MVC3 2.2.2.0

【问题讨论】:

  • 如果你解释你想做什么会很有帮助。很有可能,有比您认为必须做的更好的方法来做到这一点。将代码注入视图远远超出了一种糟糕的做法,以至于您必须走错路才能做到这一点。

标签: asp.net-mvc-3 dependency-injection ninject


【解决方案1】:

您不应该使用NinjectView 提供任何东西。 NinjectControllers 提供依赖关系,控制器的工作是构建和传递View 所需的模型。

周围有很多很好的教程,例如见here

【讨论】:

  • 如果我想使用某些服务手动将代码直接写入视图,还有什么办法?
  • 为什么要这样做?这通常被认为是不好的做法。那么,如果有人告诉你不要这样做,你为什么要这样做呢?
  • 因为我有一些部分视图,总是通过网站获得,但我认为从所有控制器的数据库中获取数据来渲染它不是一个好主意,我想将它分开,除了直接写入视图之外,还有其他方法吗?
【解决方案2】:

看看以前的答案,你真的需要这个吗?视图注入与 MVC 模式相矛盾,在大多数情况下应该避免。

但如果您需要一些服务来渲染视图的某些部分,您可以执行以下操作:

  1. DependencyResolver.Current.GetService<IViewService>(),但我不建议这样做,因为这是众所周知的“服务定位器”反模式。
  2. Here我找到了更好的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多