我正在尝试使用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.title
文件夹中的Web.sitemap.resx
文件夹中有相应的App_GlobalResources
。遵循以下说明:http://msdn.microsoft.com/en-us/library/ms178427(VS.80).aspx
我在这里缺少什么?
这已在changeset 52831。
中实施答案 0 :(得分:6)
由于该项目的所有者Maarten Balliauw,MvcSitemapProvider的最新版本(在撰写本文时,版本2.2.1)已经解决了这个问题。
MvcSitemapProvider的隐式本地化几乎与默认的SitemapProvider(see How to: Localize Site-Map Data)完全相同。唯一的区别是,在站点地图文件本身中设置<siteMap enableLocalization="true">
,您必须在Web.Config
文件(as described here)中设置此项。
答案 1 :(得分:2)
您需要从MvcSiteMapNode中的资源文件中访问菜单项的标题
<mvcSiteMapNode title="$resources:MenuLocaliSations,Dashboard" controller="Dashboard" action="Index" changeFrequency="Always" updatePriority="Normal">