6

我正在尝试对 MVCSiteMap 使用隐式本地化,它不起作用。

这是我的样本Web.Sitemap

<?xml version="1.0" encoding="utf-8" ?>

<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0" enableLocalization="true">

<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">

    <mvcSiteMapNode resourceKey="Products" title="Products" controller="Products" action="Index">
        <mvcSiteMapNode title="Edit" controller="Products" action="Edit" />
    </mvcSiteMapNode>

    <mvcSiteMapNode title="Categories" controller="Categories" action="Index" />
    <mvcSiteMapNode title="Suppliers" controller="Suppliers" action="Index" />

</mvcSiteMapNode>
</mvcSiteMap>

resourceKey="Products"在上面的站点地图中有一个对应Products.titleWeb.sitemap.resx文件,里面的App_GlobalResources文件夹。遵循这些说明: http: //msdn.microsoft.com/en-us/library/ms178427 (VS.80).aspx

我在这里缺少什么?

编辑

这已在变更集 52831中实现。

4

2 回答 2

6

感谢项目所有者 Maarten Balliauw,在 MvcSitemapProvider 的最新版本(撰写本文时,版本 2.2.1)中解决了这个问题!

MvcSitemapProvider 的隐式本地化几乎与默认的 SitemapProvider 相同(请参阅如何:本地化站点地图数据)。唯一的区别是<siteMap enableLocalization="true">,您必须在文件中进行设置,而不是在站点地图文件本身中进行设置Web.Config如此处所述)。

于 2010-11-08T02:12:47.057 回答
2

您需要从 MvcSiteMapNode 中的资源文件访问菜单项的标题

<mvcSiteMapNode title="$resources:MenuLocaliSations,Dashboard" controller="Dashboard" action="Index" changeFrequency="Always" updatePriority="Normal">
于 2010-10-24T11:55:43.790 回答