【问题标题】:MvcSiteMapProvider not showing breadcrumb as links and routesMvcSiteMapProvider 未将面包屑显示为链接和路线
【发布时间】:2016-05-23 14:34:27
【问题描述】:

我在使用 MvcSiteMapProvider 和 ASP NET MVC 5 时遇到了这个问题。

有时,在部署应用程序时(使用发布模式),面包屑链接会中断,并且不会按应有的方式显示,如下图所示:

预期: http://s33.postimg.org/oop4ua3tb/breabcrumb_funcionando_mapeamentocampo.png

断开的链接2:http://s33.postimg.org/yjga0i7rj/breadcrumb_mapeamento_de_campo.png

这是站点地图文件:

<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">

  <mvcSiteMapNode title="Home" controller="Home" action="Index">
    <mvcSiteMapNode title="Processos" controller="Processo" action="Index" key="Processo">
      <mvcSiteMapNode title="Alterar Processo" controller="Processo" action="Alterar" preservedRouteParameters="Id" />
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Importar Processos" controller="ImportarProcessos" action="ImportarProcessos">
      <mvcSiteMapNode title="Histórico de Importação" controller="ImportarProcessos" action="HistoricoImportacao" />
      <mvcSiteMapNode title="Histórico de Inconsistências" controller="ImportarProcessos" action="HistoricoInconsistencia" />
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Meus Dados" controller="Conta" action="MeusDados" />
    <mvcSiteMapNode title="Parâmetros Gerais" controller="ParametroGeral" action="Index" />
    <mvcSiteMapNode title="Regras de Validação" controller="RegraValidacao" action="Index" />
    <mvcSiteMapNode title="Mapeamento dos Campos" controller="MapeamentoCampo" action="Index" />
    <mvcSiteMapNode title="Módulos Externos" controller="ModuloExterno" action="Index" key="ModuloExternoPai">
      <mvcSiteMapNode title="ConfigurarModulo" controller="ModuloExterno" action="ConfigurarModulo" preservedRouteParameters="Id" />
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Usuários" controller="Usuario" action="Index" key="Usuario">
      <mvcSiteMapNode title="Registrar" controller="Usuario" action="Registrar" />
      <mvcSiteMapNode title="AlterarUsuario" controller="Usuario" action="Editar" preservedRouteParameters="Id" />
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Lista Negra de Senhas" controller="ListaNegraSenha" action="Index" key="ListaNegraSenha">
      <mvcSiteMapNode title="Registrar" controller="ListaNegraSenha" action="Registrar" />
      <mvcSiteMapNode title="AlterarSenha" controller="ListaNegraSenha" action="Editar" preservedRouteParameters="Id" />
    </mvcSiteMapNode>
    <mvcSiteMapNode title="Relatório de Log" controller="RelatorioLogger" action="RelatorioLogger" />
    <mvcSiteMapNode title="Sobre" controller="Home" action="Sobre" />
  </mvcSiteMapNode>
</mvcSiteMap>

这是视图中用于渲染面包屑的代码:

   <div class="breadcrumb">
            <span>@LabelsResources.BreadCrumbsMessage @Html.MvcSiteMap().SiteMapPath()</span>
        </div>

我们尝试在解决方案文件夹中部署站点地图文件,但也没有成功。

有人遇到过同样的问题并知道如何解决吗?

谢谢!

【问题讨论】:

    标签: c# asp.net asp.net-mvc mvcsitemapprovider


    【解决方案1】:

    最好的猜测是 MvcSiteMapProvider 用于呈现 HTML 的 /Views/Shared/DisplayTemplates/ 文件夹中的文件(即 SiteMapPathHelperModel.cshtmlSiteMapNodeModel.cshtml)未包含在部署中,或者已以某种方式进行了修改以呈现节点的键而不是链接的层次结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多