2012-03-10 8 views
6

で、次のノードを持つ属性:カスタムは、私のファイル<code>Mvc.sitemap</code>でMvcSiteMapプロバイダ

<mvcSiteMapNode title="Contato" controller="Home" action="Contato" classesCustomizadas="quebra contato" /> 

のWeb.config

attributesToIgnore="visibility, classesCustomizadas"

全..

<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, classesCustomizadas" 
       nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider" 
       controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider" 
       actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider" 
       aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider" 
       siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider" 
       siteMapNodeVisibilityProvider="MvcSiteMapProvider.FilteredSiteMapNodeVisibilityProvider, MvcSiteMapProvider" 
       siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider" /> 
    </providers> 
</siteMap> 

私はファイル "Site"を編集しましたMapNodeModel.cshtml」次のように彼は仕事ができるので:

@if (Model.IsCurrentNode && Model.SourceMetadata["HtmlHelper"].ToString() != "MvcSiteMapProvider.Web.Html.MenuHelper") 
{ 
    <text>@Model.Title</text> 
} 
else if (Model.IsClickable) 
{ 
    <a href="@Model.Url " class=">>>> Classes here <<<<<">@Model.Title</a> 
} 
else 
{ 
    <text>@Model.Title</text> 
} 

クラスは、属性classesCustomizadasの私のファイルMvc.sitemapで設定し、置き換え取得する方法(>>>>クラスここ< < < < <)?

+1

あなたは 'attributesToIgnore'が私のために動作しませんでしために使用されている値を。コンマで区切られた属性のリストには、カンマの周囲に空白を入れることはできません。私はバージョン3.1を使用しています。 –

答えて

6

カスタム属性は、SiteMapNodeModelのMetaAttributesプロパティに格納されます。

したがって、あなたが使用してクラスを取得することができます:@Model.MetaAttributes["classesCustomizadas"]

関連する問題