一个例子:
@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>
这样的事情可能吗?
答案 0 :(得分:1)
这不会起作用,因为你实际上是在试图提取相当于JS eval
的东西。好吧,你可以让它工作,但你必须使用反射,它既丑陋又慢。
给translations
一个索引器,比如使用通用Dictionary<TKey, TValue>
免费提供的索引器,你会好得多。 (注意我不确定translations
是什么类型。我假设它是匿名类型或具有属性的具体类。)然后你可以使用索引器:
@translations[p.TextId]