在HTML中渲染Razor代码

时间:2016-03-23 19:46:33

标签: c# asp.net-mvc asp.net-mvc-3 razorengine

我有一些保存在我的数据库中的HTML,稍后会对其进行修改并保存在变量中,最后使用@Html.Raw( Model.Page.Html )打印在我的视图中。

问题是,此HTML拥有一些Razor代码,例如ViewBag.Email。我怎么能在打印HTML之前渲染这个Razor代码?我已经尝试将其放在Partial View上并在HTML中调用它然后打印它但它也不会起作用。

有些人向我指出了RazorEngine lib,但是我无法做到这一点,我安装了3.7.7版本,但文档对我来说有点混乱。

如果RazorEngine是我最好的选择,那么有人可以在打印之前提供一个如何呈现HTML的示例吗?

修改

这是我的问题的一个示例:我的联系页面里面有一个表单。在我Filter的某个时刻,我检查了请求是否来自移动设备并且使用此信息我将在ViewBag上设置输入的类型,例如:

<input type="@ViewBag.ITEmail" placeholder="E-mail" name="cEmail">

此HTML从我的数据库中提取并传递给我的助手以修改某些信息,然后使用View将其打印在@Html.Raw( Model.Page.Html )上。

1 个答案:

答案 0 :(得分:1)

Razor视图是动态构建的。每次编辑剃刀文件时,它都会在后台编译并内置到新的dll中。

基本上你必须以某种方式触发构建过程,这通常是在更改cshtml文件时触发的。所以,你必须这样做。加载并保存文件。或者深入研究内部......