Ninject.MVC WebViewPage _Layout.cshtml注射是空的

时间:2014-08-14 07:09:17

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

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

我已覆盖默认视图,为我的观点注入Permissionmanager

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>
}

在所有视图中都很有效,但对于&#34; _Layout.cshmtl&#34;它不在这里工作的是&#34; PermissionManager&#34;实例&#34; Null&#34;我觉得它太迟了。

1 个答案:

答案 0 :(得分:2)

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

@Html.Partial("_MainMenue")