【问题标题】:Ninject.MVC WebViewPage _Layout.cshtml Injections are NullNinject.MVC WebViewPage _Layout.cshtml 注入为空
【发布时间】:2014-08-14 07:09:17
【问题描述】:

我在我的 ASP.NET MVC4 项目中使用 Ninject.MVC4,我正在创建的“NinjectWebCommon.cs”文件中设置我的绑定。

我已经覆盖了默认视图,以便为我的视图注入权限管理器

public abstract class MvcBaseWebViewPage<TModel> : WebViewPage<TModel>
{
    [Inject]
    public IPermissionManager PermissionManager { get; set; }
}

然后我在 Views web.config 中设置了新的 BaseView

<!--<pages pageBaseType="System.Web.Mvc.WebViewPage">-->
<pages pageBaseType="Gui.Mvc.Views.MvcBaseWebViewPage">

现在我可以访问“我的视图”中的 PermissionManager,例如

@if (PermissionManager.HasRight(RightsQsMonitor.ConfigurationTrelloVisible))
{
     <li>
      <a href="#" target="_blank">
      <i class="fa fa-trello fa-fw"></i>&nbsp;Trello</a></li>
}

这在所有视图中都很好,但对于“_Layout.cshmtl”,它在这里不起作用的是“PermissionManager”实例“Null”,我认为它被注入得太晚了。

【问题讨论】:

    标签: asp.net-mvc-4 ninject ninject.web.mvc


    【解决方案1】:

    一种解决方法是将“PermissionManager”调用移动到 Html.Partial - 这里 PermissionManager 不是 Null 并被注入。

    @Html.Partial("_MainMenue")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多