如何在字符串中嵌入razor变量

本文关键字:razor 变量 字符串 | 更新日期: 2023-09-27 18:18:15

我想在资源文件字符串中添加一个剃刀模型变量。我尝试了以下操作,但变量被呈现为文字:

尝试1:

"There is a variable @Model.here"

尝试2:

"There is a variable @(Model.here)"
在代码中,它是这样被引用的:

@MyManager.GetString("resourcefilevariable")

有办法做到这一点吗?

如何在字符串中嵌入razor变量

最好存储

"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>]

在razor视图中,将其渲染为

@Html.Raw(string.Format(Resources.resourceName, Model.Name))

正如Leigh shepherd指出的那样,您可以使用带有占位符和string.Format的字符串来用实际值替换占位符。如果字符串包含任何HTML标签,它应该用Html.Raw方法呈现。

@Html.Raw(string.Format(Resources.String, model.here))