如何访问本地资源:MVC

本文关键字:资源 MVC 何访问 访问 | 更新日期: 2023-09-27 18:28:27

我浏览了这个线程,询问如何访问本地资源,他解决了自己的问题,但我的情况有点不同。

Areas>Models>Support>Localization
                             MyResouces.resx
                     SupportModel

在我的SupportModel中,我想访问Localization/MyResoluces.resx中的值。语法是什么?

一个解决方案是使用HttpContext.GetLocalResourceObjec(虚拟路径,密钥),但它对我不起作用

GetLocalResourceObject("~/Areas/Models/Support/SupportModel", "option1Text")

我还将本地化文件夹重命名为App_LocalResources,但这并没有解决问题。我可能做错什么了吗?

请注意,我已经修改了我的代码,因为我不想发布真正的代码。Thx

如何访问本地资源:MVC

要访问Localization/MyResoluces.resx中的值,请尝试以下操作:

@Areas.Models.Support.Localization.MyResouces.option1Text

语法:〔namespace〕。[ResourceName]。[属性]

前提是您的MyResoluces.resx文件具有public访问修饰符。

我在Models/Support中创建了一个带有Resource1.resx文件的示例应用程序,这就是我从中获取值的方式:

public ActionResult Login(string returnUrl)
    {
        var res = Models.Support.Resource1.TestString1;  // this is resource created inside Models/Support/
        ViewBag.ReturnUrl = returnUrl;
        return View();
    }

我使用的解决方案是这样的。有趣的是,网上没有可用的解决方案。

using Myproject.Areas.Models.Support.Localization;
...
MyResouces.option1

上面并不是实际编译的代码。

您可以使用以下语法在视图中访问它:

@Resources.IndexPage.PropertyName

您必须确保您的资源文件具有以下属性:生成操作:嵌入资源自定义工具:PublicResXFileCodeGenerator自定义工具命名空间:Resources.IndexPage(这是您给定的命名空间,用于视图中访问属性。

看看这篇文章:http://www.chambaud.com/2013/02/27/localization-in-asp-net-mvc-4/