1

MVC SiteMapProviderがブレッドクラムをレイアウトする方法は、次のように表示されます。

ホーム>詳細>プロジェクトの管理

">"を別の記号(または私の特定の場合はTwitterブートストラップ内のアイコン)に変更したい場合はどうすればよいですか?

現時点では、@ Html.MvcSiteMap()。SiteMapPath()を使用してブレッドクラムを呼び出しています。

Views / Shared / DisplayTemplates / SiteMapPathHelperModelに移動し、変更してみました

<text> &gt; </text>

に:

<text><i class="icon-chevron-right"></i></text>

しかし、より大きいシンボルは残りました。エラーは発生しませんでした。

パンくずを使用する部分ビューからの潜在的に関連するコードを次に示します。

@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で宣言されているサイトマップは次のとおりです。

<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テンプレート内のコード:

@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メソッドに渡すことができます。このメソッドを呼び出す部分ビュー内でこれを試みると、次のように渡します。

@Html.MvcSiteMap().SiteMapPath("SiteMapPathHelperModel")

プロジェクトからacsxファイルを削除して、デフォルトでここに移動しないようにしました(cshmtlテンプレートを使用するようにします)。別のシンボルを使用するようにテンプレートコードを変更し、再構築してすべてを保存してから、プロジェクトを実行しました。

これらすべてにもかかわらず、デフォルトの">"記号を引き続き使用します。

4

1 に答える 1

2

.ascxファイルの名前を別の名前に変更してみてください。プロジェクトからファイルを削除しても、それを使用しようとする場合があります。

于 2012-07-25T14:53:52.540 に答える