从 Razor 动态访问资源文件属性

Don*_*lle 1 c# asp.net-mvc razor

我们有一个局部视图,它呈现一个表示菜单项的<ul>包含<li>项。这些目前在结构上是静态的,并使用资源文件处理多语言,如下所示:

<li><a href="@Url.Action("commissionlist", "commissions")">@Resources.Labels.Commissions</a></li>
Run Code Online (Sandbox Code Playgroud)

但是,我需要动态构建菜单结构。所以我有一个菜单项对象列表,每个对象都有一个 MenuResourceTag 字段。

我如何从一个代表我需要查找的属性名称的字符串(例如“Commissions”)到访问 Resources.Labels 上适当属性的值?

我知道答案将涉及反射,但我发现的所有类似事物的示例都需要Resources.Labels 类的实例,而我无法弄清楚如何在 Razor 中获取它。

Gre*_*reg 5

您可以在模型中设置标签文本,但如果您想继续直接调用资源文件,则可以尝试以下操作:

资源文件

| 姓名| 价值|
| 文字_A | 一个 |
| 文字_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>
Run Code Online (Sandbox Code Playgroud)

使用 ResourceManager 按键访问值。