我的项目要求我提供多语言功能,因此使用Global.resx
我有一个英语术语列表,在Global.fr.resx
我有一个法语术语列表。这非常有效。我可以使用@ Resources.Global在我要求的术语中调用。不管。
但是,我现在需要从foreach
中的RESX文件动态显示这些术语,从实体框架收集的值。有什么想法吗?
更多信息:
代码非常简单,我还在学习C#,我在View中工作,所以字面上我有@ Resources.Global。无论显示静态术语然后我有一个foreach循环:
<ul>
@foreach (var category in Model.categories)
{ <li>@category.categoryName</li> }
</ul>
我想从@ Resource.Global调用@ category.categoryName。
答案 0 :(得分:1)
假设我理解正确,您希望根据动态键名称(即变量中的某些内容?)从资源文件中检索项目。你可以为此创建一个扩展方法,就像这样(显然将命名空间替换为资源文件的命名空间):
public static string Resource(this string name)
{
return new ResourceManager(
"YourApp.Namespace.Resources",
Assembly.GetExecutingAssembly()
.GetString(name) ?? name;
}
然后对于foreach
,你可以这样做(假设yourList
是一个字符串列表):
foreach (string item in yourList)
{
item = item.Resource();
}
甚至只是使用Linq?
List<string> resourceStrings = yourList.Select(s => s.Resource()).ToList();