MvcSiteMap提供程序中的自定义属性

时间:2012-03-10 23:40:49

标签: asp.net-mvc-4 mvcsitemapprovider

在我的文件Mvc.sitemap中,拥有以下节点:

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

我编辑了文件&#34; SiteMapNodeModel.cshtml&#34;所以他可以按照以下方式工作:

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

如何在属性Mvc.sitemap上的文件classesCustomizadas中配置类并替换(&gt;&gt;&gt;&gt;此处的类&lt;&lt;&lt;&lt;&lt;&lt;&lt;)?< / p>

1 个答案:

答案 0 :(得分:6)

自定义属性存储在SiteMapNodeModel上的属性MetaAttributes中。

因此,您可以使用以下内容获取课程:@Model.MetaAttributes["classesCustomizadas"]