我在this线程上询问如何访问本地资源,他解决了自己的问题,但我的情况有点不同。
Areas>Models>Support>Localization
MyResouces.resx
SupportModel
在我的SupportModel中,我想访问Localization / MyResouces.resx中的值。语法是什么?
一种解决方案是使用HttpContext.GetLocalResourceObjec(虚拟路径,密钥),但它对我没用。我用过
GetLocalResourceObject("~/Areas/Models/Support/SupportModel", "option1Text")
我还将Localization文件夹重命名为App_LocalResources,但这并没有解决问题。我可能做错了吗?
请注意,我修改了我的代码,因为我不想发布真实的代码。 THX
答案 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/