Domanda

Nel mio file Mvc.sitemap, avere il seguente nodo:

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

web.config

attributesToIgnore="visibility, classesCustomizadas"

Full ..

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

Ho modificato il file "Sitemapnodemodel.cshtml" in modo da poter funzionare 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 configurata nel mio file Mvc.sitemap on attributo classesCustomizadas e sostituisci (>>>> Classi qui <<<<<)?

È stato utile?

Soluzione

Gli attributi personalizzati sono memorizzati nella proprietà Metaattributes su Sitemapnodemodel.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top