使用MvcSiteMapProvider无法正确显示面包屑级别(超过2)

时间:2012-10-24 09:51:32

标签: .net asp.net-mvc-2 sitemap breadcrumbs mvcsitemapprovider

我正在使用MvcSiteMapProvider,它只显示2层面包而不是3或4层。

而不是:

Categories > List > item1

只显示:

List > item1

这是我的Mvc.sitemap:

<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0 MvcSiteMapSchema.xsd"
            enableLocalization="true">
<mvcSiteMapNode title="$resources:mvc.sitemap,menu_Home" controller="Home" action="Index" visibility="InSiteMapPathOnly" changeFrequency="Always">
<mvcSiteMapNode title="$resources:mvc.sitemap,menu_Categories" controller="Category" action="Categories">
            <mvcSiteMapNode title="$resources:mvc.sitemap,menu_List" controller="Category" action="Index">
                <mvcSiteMapNode title="$resources:mvc.sitemap,menu_item1" controller="Category" action="Action1" />
                <mvcSiteMapNode title="$resources:mvc.sitemap,menu_item2" controller="Category" action="Action2"/>
            </mvcSiteMapNode>
</mvcSiteMapNode>
</mvcSiteMap>

2 个答案:

答案 0 :(得分:0)

由于Mvc.sitemap文件的内容无效,可能会出现此问题。 Home / Index控制器/操作的mvcSiteMapNode标记缺少其结束标记。

答案 1 :(得分:0)

上面的帖子中有一个拼写错误(缺少/在第一个mvcSiteMapNode中),但修复后问题仍然存在。

但是,新版本的MvcSiteMapProvider MVC4(和MvcSiteMapProvider MVC5)修复了这个问题。

工作代码:

<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0"
            xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0 MvcSiteMapSchema.xsd"
            enableLocalization="true">
<mvcSiteMapNode title="$resources:mvc.sitemap,menu_Home" controller="Home" action="Index" visibility="InSiteMapPathOnly" changeFrequency="Always" />
<mvcSiteMapNode title="$resources:mvc.sitemap,menu_Categories" controller="Category" action="Categories">
            <mvcSiteMapNode title="$resources:mvc.sitemap,menu_List" controller="Category" action="Index">
                <mvcSiteMapNode title="$resources:mvc.sitemap,menu_item1" controller="Category" action="Action1" />
                <mvcSiteMapNode title="$resources:mvc.sitemap,menu_item2" controller="Category" action="Action2"/>
            </mvcSiteMapNode>
</mvcSiteMapNode>
</mvcSiteMap>