1

我的项目要求我具有多语言功能,因此使用Global.resx我有一个英语术语列表,并且Global.fr.resx我有一个法语术语列表。这完美地工作。我可以使用@Resources.Global 调用我需要的术语。任何。

但是,我现在需要根据foreach从实体框架收集的值,从 RESX 文件中动态显示这些术语。任何想法?

更多信息:

代码很简单,我还在学习 C#,我在视图中工作,所以从字面上看,我有 @Resources.Global.Whatever 来显示静态术语,然后我有一个 foreach 循环:

<ul>

@foreach (var category in Model.categories)

{ <li>@category.categoryName</li> }

</ul>

我也希望从 @Resource.Global 调用 @category.categoryName 。

4

1 回答 1

1

假设我对您的理解正确,您想根据动态键名(即变量中的某些内容?)从资源文件中检索项目。您可以为此创建一个扩展方法,如下所示(显然将命名空间替换为资源文件的命名空间):

 public static string Resource(this string name)
 {
     return new ResourceManager(
             "YourApp.Namespace.Resources",
             Assembly.GetExecutingAssembly()
                .GetString(name) ?? name;
 }

然后对于 a foreach,您可以这样做(假设yourList是字符串列表):

foreach (string item in yourList)
{
    item = item.Resource();
}

或者甚至只是使用Linq?

List<string> resourceStrings = yourList.Select(s => s.Resource()).ToList();
于 2013-02-01T10:40:35.607 回答