这是我在其中一种视图中获取资源字符串的方式:

@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标记,因此您需要将调用包装在括号中,以强制其将整个调用视为上述单个表达式。

07-28 02:38
查看更多