2014-03-26 36 views
4

的定義,我使用MvcSiteMapProvider MVC5與我的web應用程序和我_Layout.cshtml文件裏我使用:System.Web.Mvc.HtmlHelper不包含MvcSiteMap

@if (Html.MvcSiteMap().SiteMap.CurrentNode != Html.MvcSiteMap().SiteMap.RootNode) 
    { 
     @Html.MvcSiteMap().SiteMapPath() 
    } 

但Intellisence拋出此錯誤:

System.Web.Mvc.HtmlHelper does not contain a definition for MvcSiteMap 

有誰知道如何解決這個問題?

+0

@StevenV Ofcourse修復​​了錯誤。 – user667430

回答

10
@using MvcSiteMapProvider.Web.Html 

@StevenV

+0

太棒了!解決了這個問題:) – sebastian

3

我認爲你缺少using聲明中說固定加入這個到視圖的頂部。嘗試將@using MvcSiteMapProvider.Web.Html添加到視圖的頂部。

如果要經常使用它,請考慮將命名空間添加到Views \ Web.config中的<system.web.webPages.razor>下的<namespaces>部分。這將使其可以在該文件夾內的所有Razor視圖上使用,而不需要在每個單獨的視圖上使用using聲明。

0

您需要安裝MvcSiteMap提供程序。

您可以從包管理器控制檯使用以下命令做到這一點:

Install-Package MvcSiteMapProvider.MVC5 

然後在剃刀加頂:

@using MvcSiteMapProvider 
4

是@Steven V提到的命名空間是自動在安裝NuGet包期間添加到Views\Web.config文件。

<configuration> 
    <system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="MvcSiteMapProvider.Web.Html" /> 
     <add namespace="MvcSiteMapProvider.Web.Html.Models" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 
</configuration> 

但是,Visual Studio智能感知需要重新編譯該項目才能將其拾取。沒有必要在視圖中添加@using MvcSiteMapProvider.Web.Html聲明。