【问题标题】:System.Web.Mvc.HtmlHelper does not contain a definition for MvcSiteMapSystem.Web.Mvc.HtmlHelper 不包含 MvcSiteMap 的定义
【发布时间】:2014-03-26 14:52:26
【问题描述】:

我正在将 MvcSiteMapProvider MVC5 与我的 Web 应用程序以及我正在使用的 _Layout.cshtml 文件内部一起使用:

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

但是 Intellisence 抛出了这个错误:

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

有人知道如何解决这个问题吗?

【问题讨论】:

  • @StevenV 当然已经修复了错误。

标签: c# asp.net-mvc mvcsitemapprovider


【解决方案1】:
@using MvcSiteMapProvider.Web.Html

通过将其添加到视图顶部来修复

@StevenV

【讨论】:

    【解决方案2】:

    我认为您缺少 using 语句。尝试将@using MvcSiteMapProvider.Web.Html 添加到视图顶部。

    如果您要经常使用它,请考虑将命名空间添加到 Views\Web.config 中 <system.web.webPages.razor> 下的 <namespaces> 部分。这将使它在该文件夹内的所有 Razor 视图中可用,而无需在每个单独的视图上使用 using 语句。

    【讨论】:

      【解决方案3】:

      @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 intellisense 需要重新编译项目才能获取它们。无需在视图中添加@using MvcSiteMapProvider.Web.Html 语句。

      【讨论】:

        【解决方案4】:

        您需要安装 MvcSiteMap Provider。

        您可以使用以下命令从包管理器控制台执行此操作:

        Install-Package MvcSiteMapProvider.MVC5
        

        然后在剃须刀的顶部添加:

        @using MvcSiteMapProvider
        

        【讨论】:

          猜你喜欢
          • 2012-09-23
          • 1970-01-01
          • 2017-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多