【问题标题】:How to use implicit localization with MVCSiteMap?如何在 MVCSiteMap 中使用隐式本地化?
【发布时间】:2010-10-23 19:09:44
【问题描述】:

我正在尝试对 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",在Web.sitemap.resx 文件中有一个对应的Products.title,在App_GlobalResources 文件夹内。遵循这些说明:http://msdn.microsoft.com/en-us/library/ms178427(VS.80).aspx

我在这里缺少什么?

编辑

这已在changeset 52831 中实现。

【问题讨论】:

  • 为什么投反对票?有人可以向我解释吗?我在这里问错了什么?
  • +1 因为这个问题不值得投反对票...

标签: asp.net-mvc mvcsitemapprovider


【解决方案1】:

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

MvcSitemapProvider 的隐式本地化几乎与默认的 SitemapProvider (see How to: Localize Site-Map Data) 相同。唯一的区别是,您必须在 Web.Config 文件 (as described here) 中设置 &lt;siteMap enableLocalization="true"&gt;,而不是在站点地图文件本身中设置。

【讨论】:

    【解决方案2】:

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

    <mvcSiteMapNode title="$resources:MenuLocaliSations,Dashboard" controller="Dashboard" action="Index" changeFrequency="Always" updatePriority="Normal">
    

    【讨论】:

    • 这是明确的本地化,不是我想要的。我想使用“resourceKey”属性...
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多