如何访问本地资源:MVC

时间:2013-08-21 19:21:53

标签: c# asp.net-mvc localization resources

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

Areas>Models>Support>Localization
                             MyResouces.resx
                     SupportModel

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

一种解决方案是使用HttpContext.GetLocalResourceObjec(虚拟路径,密钥),但它对我没用。我用过

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

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

请注意,我修改了我的代码,因为我不想发布真实的代码。 THX

4 个答案:

答案 0 :(得分:1)

要从Localization / MyResouces.resx访问值,请尝试以下操作:

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

语法: [namespace]。[ResourceName]。[Property]

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

答案 1 :(得分:0)

我在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();
    }

答案 2 :(得分:0)

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

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

以上实际上并不是编译代码。

答案 3 :(得分:0)

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

@Resources.IndexPage.PropertyName

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

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