2

我正在使用 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>
4

2 回答 2

0

出现此问题的原因可能是 Mvc.sitemap 文件的内容无效。Home/Index 控制器/操作的mvcSiteMapNode标签缺少结束标签。

于 2014-02-13T20:49:04.070 回答
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>
于 2014-02-14T03:24:51.143 回答