gpt4 book ai didi

.net - App_LocalResources 如何与 MVC 配合使用?

转载 作者:行者123 更新时间:2023-12-03 11:01:56 24 4
gpt4 key购买 nike

我一直在研究我的第一个 MVC 应用程序,我想对其进行本地化。我知道如何使用 App_GlobalResources,但我更喜欢使用 App_LocalResources。

在典型的 WebForms 应用程序中,您将 App_LocalResources 文件夹与 ASPX 文件放在同一目录中……这在 MVC 中是否相同(即:我是否将它们放在“views”目录中的相应子文件夹中)?

此外,在您的 View 中访问 App_GlobalResources 时,您可以这样做 <%=Html.Encode(Resources.Index.Title)%>但是我不能用 App_LocalResources 做到这一点。我不想让我的 <label runat="server"为了利用meta:resourcekey
编辑:

我发现了一种方法来做到这一点,但我不确定这是否是最好的方法。这是想法

  • 你把App_LocalResources文件夹作为您各自的 View 文件夹中的子文件夹
  • 您创建对应于您的 View 的 resx 文件... IE: Index.resxAbout.resx
  • 您将 Resx 文件属性设置为“Public”(PublicResXFileCodeGenerator)、“嵌入资源”、“Views.[viewname]”命名空间
  • 创建一个名为“Title”的新资源名称,并将您想要的任何内容放入值中。

  • 现在我可以使用这样的东西来引用本地资源
    <%= MyProj.Views.Home.Index.Title%>
    我看到的唯一问题是资源是嵌入的,我无法在不重新编译项目的情况下添加新的语言环境。

    Here is my reference on this method.

    最佳答案

    您不应将 App_GlobalResources 或 App_LocalResources 与 MVC 一起使用。那是因为这些资源的工作方式。这些资源没有嵌入到您的项目中,而是由 ASP.NET 运行时编译。这意味着您的资源在不在 ASP.NET 运行时内运行时将不可用,这意味着如果您使用其中的资源,您将失去对 View 和 Controller 进行单元测试的能力。

    This post提供有关它的更多详细信息。

    相反,您应该使用您在问题中提到的方法。将您的资源放在您想要的任何位置,并将其设置为“嵌入式资源”,自定义工具应为“PublicResXFileCodeGenerator”。

    关于.net - App_LocalResources 如何与 MVC 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2970935/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com