我们有一个部分视图,它呈现包含代表菜单项的<ul>
项的<li>
。它们目前在结构上是静态的,并且使用资源文件处理多语言,如下所示:
<li><a href="@Url.Action("commissionlist", "commissions")">@Resources.Labels.Commissions</a></li>
但是,我需要动态构建菜单结构。所以我有一个菜单项对象列表,每个对象都有一个MenuResourceTag字段。
如何获得一个表示我需要查找的属性名称的字符串(例如&#34;佣金&#34;)来访问Resources.Labels上相应属性的值?
我知道答案将涉及反思,但我发现类似事情的所有示例都需要一个实例的Resources.Labels类,我无法解决如何在Razor中获得它。
答案 0 :(得分:2)
您可以在模型中设置标签文本,但如果您想继续直接调用资源文件,那么您可以尝试这样做:
资源文件
| 姓名 | 价值 |
| Text_A | a |
| Text_B | b |
查看强>
<ul>
@foreach (var x in new List<string>{ "A", "B" })
{
<li><a href="@Url.Action("commisionList", new { Data = x})">@Resources.ResourceManager.GetString("Text_" + x)</a></li>
}
</ul>
使用ResourceManager按键访问值。