这是我在其中一种视图中获取资源字符串的方式:
@MyProject.Resources.ResourceEN.MyResourceStringName
//Gives back mystring in desired language
如果我想发送一个字符串变量怎么办?
@string HelloWorld;
@MyProject.Resources.ResourceEN.HelloWorld
这显然不起作用,因为它查找的是资源名称“ HelloWorld”,而不是该字符串变量的内容。
是否可以为此使用变量?
最佳答案
您可以使用ResourceManager's GetString方法使用变量返回指定字符串资源的值:
@string HelloWorld;
@(new ResourceManager(typeof(MyProject.Resources.ResourceEN)).GetString(HelloWorld))
最好还是考虑在
HtmlHelper
上添加辅助方法/扩展方法,例如:public static string MyResource<T>(this HtmlHelper html, object key) {
return new ResourceManager(typeof(T)).GetString(key.ToString());
}
然后可以按以下方式使用:
@string HelloWorld;
@(Html.MyResource<MyProject.Resources.ResourceEN>(HelloWorld))
**编辑**
请记住,MVC Razor解析器看到
<
并认为它是HTML标记,因此您需要将调用包装在括号中,以强制其将整个调用视为上述单个表达式。