我想将一个剃刀模型变量添加到资源文件字符串中。我尝试了以下内容,但变量呈现为文字:
尝试1:
"There is a variable @Model.here"
尝试2:
"There is a variable @(Model.here)"
在代码中,它被引用如下:
@MyManager.GetString("resourcefilevariable")
有没有办法做到这一点?
答案 0 :(得分:4)
最好通过存储
来做这种事情"There is a variable {0}"
作为资源字符串,并在视图中写下这样的内容:
@string.Format(Resources.String, model.here);
作为一个完整的例子:
这是模型类:
public class Foo
{
public string Name { get; set; }
public Foo()
{
Name = "bar";
}
}
它有一个带有简单索引ActionResult的控制器:
// GET: Foo
public ActionResult Index()
{
return View(new Foo());
}
有一个带资源的resx文件
[resourceName, <strong>name of model is: {0}</strong>]
在剃须刀视图中,将其渲染为
@Html.Raw(string.Format(Resources.resourceName, Model.Name))
答案 1 :(得分:1)
正如Leigh Shepperson所指出的,您可以使用带占位符的字符串和string.Format
来替换占位符和实际值。如果字符串包含任何HTML标记,则应使用Html.Raw
方法进行渲染。
@Html.Raw(string.Format(Resources.String, model.here))