首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC SiteMapProvider面包屑将">“更改为其他东西

MVC SiteMapProvider面包屑将">“更改为其他东西
EN

Stack Overflow用户
提问于 2012-07-24 19:43:49
回答 1查看 4.2K关注 0票数 1

MVC SiteMapProvider布局面包屑的方式,它们的显示方式如下

主页>详细信息>管理项目

如果我想将">“更改为不同的符号(或者在我的具体情况下是twitter引导程序中的图标),我该怎么办?

目前,我正在使用@Html.MvcSiteMap().SiteMapPath()调用面包屑

我进入了Views/Shared/DisplayTemplates/SiteMapPathHelperModel并尝试改变

代码语言:javascript
复制
<text> &gt; </text>

至:

代码语言:javascript
复制
<text><i class="icon-chevron-right"></i></text>

但更伟大的象征留下了。我没有收到任何错误。

下面是使用面包屑的部分视图中的一些可能相关的代码:

代码语言:javascript
复制
@if(Request.IsAuthenticated) 
{

    <div class="breadcrumb trail">
        <i class="icon-home"></i>
        @Html.MvcSiteMap().SiteMapPath()
    </div>            
    <p align ="right">   
    <i class="icon-user"></i> <text>Welcome <strong>@User.Identity.Name</strong>!
        [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
    </p>
}
else
{
    @* display nothing*@
}

下面是在web.config中声明的站点地图:

代码语言:javascript
复制
<siteMap defaultProvider="MvcSiteMapProvider" enabled="true">
  <providers>
    <clear />
    <add name="MvcSiteMapProvider" type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider" siteMapFile="~/Mvc.Sitemap" securityTrimmingEnabled="true" cacheDuration="5" enableLocalization="true" scanAssembliesForSiteMapNodes="true" includeAssembliesForScan="" excludeAssembliesForScan="" attributesToIgnore="visibility" nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider" controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider" actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider" aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider" siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider" siteMapNodeVisibilityProvider="MvcSiteMapProvider.DefaultSiteMapNodeVisibilityProvider, MvcSiteMapProvider" siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider" />
  </providers>
</siteMap>

SiteMapPathHelperModel.cshtml模板中的代码:

代码语言:javascript
复制
@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel
@using System.Web.Mvc.Html
@using System.Linq
@using MvcSiteMapProvider.Web.Html.Models

@foreach (var node in Model) { 
    @Html.DisplayFor(m => node);

    if (node != Model.Last()) {
       @*Original Symbol*@
       @* <text> &gt; </text> *@
       <text> &rsaquo; </text>
    }
}

我是完全失去了我要做的方式,还是我只是错过了什么?

UPDATE您可以将模板作为字符串传递到SiteMapPath方法中。在调用此方法的分部视图中尝试这样做,我传递它的方式如下:

代码语言:javascript
复制
@Html.MvcSiteMap().SiteMapPath("SiteMapPathHelperModel")

我已经从项目中删除了acsx文件,以防止它在默认情况下出现在这里(我希望它使用cshmtl模板)。我已更改模板代码使用不同的符号,并已重建,保存所有,然后运行项目。

尽管如此,它仍然使用默认的">“符号。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-25 14:53:52

尝试将您的.ascx文件重命名为其他文件。即使您从项目中删除该文件,它也可能尝试使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11638198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档