使用过程生成的变量标识符返回值
本文关键字:变量 标识符 返回值 过程 | 更新日期: 2023-09-27 18:21:20
一个例子:
@foreach (var p in products)
{
<a href="/@(p.Path)">@translations.@(p.TextId)</a>
}
@translations.@(p.textId)
不起作用,但这与我认为的过程生成的变量标识符一致。
我想,返回对应的值,就好像我已经写了:@translations.helloworldproduct
或@translations.otherproduct
一样。
在我的translations
数据库中,我会有:helloworldproduct = "Hello, World!"
和otherproduct = "Yet another product test."
。
HTML的结果是:
<a href="/products/1">Hello, World!</a>
<a href="/products/2">Yet another product test.</a>
这样的事情有可能吗?
这不会起作用,因为您本质上是在尝试提取等价的JS eval
。好吧,你可以让它发挥作用,但你必须使用反射,它既丑陋又缓慢。
您最好给translations
一个索引器,比如通用Dictionary<TKey, TValue>
免费提供的索引器。(注意,我不确定translations
是什么类型。我假设它要么是匿名类型,要么是具有属性的具体类。)然后可以使用索引器:
@translations[p.TextId]