通过Razor Markup来查看和处理它

时间:2012-10-10 13:52:09

标签: html asp.net-mvc razor asp.net-mvc-4

我已经在互联网上搜索了几天,没有找到这个好运。

我的模型有一个属性,其中包含一大块含有Razor标记的html。 例如:

public class ViewModel 
{
    public string Content = "<div>@Html.TextBox(\"UserName\")</div>";
}

在视图中,我用

显示
@Html.Raw(Server.HtmlDecode(Model.Content).toString())

我需要能够将Razor标记转换为html,尽管因为内容是通过模型删除的,所以视图引擎不会处理它。

  • 我试过简单地使用.Raw(Model.Content),。Encode(Model.Content)来放入内容,没有任何作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用RazorEngine包来解析和执行Razor代码。这就是说我不建议你让用户直接编辑Razor模板。您在网站上打开了一个巨大的安全漏洞。

还有其他模板引擎,例如DotLiquid,它们更适合您不信任用户输入的情况。