2012-03-10 19 views
6

En mi archivo Mvc.sitemap, tener el nodo siguiente:personalizada en el proveedor de 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 editado el archivo "Sitio MapNodeModel.cshtml" para que pudiera trabajar como sigue:

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

cómo obtener la clase configurada en mi archivo Mvc.sitemap el atributo classesCustomizadas y reemplazar (>>>> clases aquí < < < < <)?

+1

El valor que ha utilizado para 'attributesToIgnore' no funcionó para mí. La lista de atributos separados por comas no puede contener espacios en blanco alrededor de las comas. Estoy usando la versión 3.1. –

Respuesta

6

Los atributos personalizados se almacenan en la propiedad MetaAttributes en SiteMapNodeModel.

Por lo tanto se puede obtener la clase usando: @Model.MetaAttributes["classesCustomizadas"]

Cuestiones relacionadas