2012-03-10 11 views
6

Nel mio file Mvc.sitemap, hanno il seguente nodo:personalizzato in fornitore MvcSiteMap

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

web.config

attributesToIgnore="visibility, classesCustomizadas"

completa ..

<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> 

I modificato il file "Sito MapNodeModel.cshtml" in modo da poter lavorare come segue:

@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> 
} 

Come ottenere la classe configurato nel mio file Mvc.sitemap su attributi classesCustomizadas e sostituire (>>>> Classi qui < < < < <)?

+1

Il valore che avete usato per 'attributesToIgnore' non ha funzionato per me. L'elenco di attributi separati da virgole non può contenere spazi bianchi attorno alle virgole. Sto usando la versione 3.1. –

risposta

6

Gli attributi personalizzati sono memorizzati nella proprietà MetaAttributes in SiteMapNodeModel.

Pertanto è possibile ottenere la classe utilizzando: @Model.MetaAttributes["classesCustomizadas"]

Problemi correlati