从razor文件和poco类将HTML呈现为字符串

时间:2016-10-13 14:52:54

标签: c# razor webforms

我有一个简单的剃​​刀文件_modelTemplate.cshtml和一个poco类模型。 我希望能够通过将模型传递给_modelTemplate.cshtml来呈现HTML字符串

原因:我正在研究遗留的WebForms应用程序,并且真的只想使用razor作为模板引擎来为不需要WebForms服务器控件或回发的特定部分生成干净的HTML。

我不需要Razor文件中的任何MVC助手,只需要一个简单的模板和绑定模型。我想我可以使用razor生成HTML,然后将渲染的字符串绑定到WebForm的.aspx页面中的Literals的.Text属性。

我在想:

Lit1.Text = RenderRazorTemplateAsString(razorFilePath, model);

有没有方法可以做到这一点,还是我需要构建一些东西?

1 个答案:

答案 0 :(得分:0)

我通过创建以下项目解决了这个问题。

我已将其发布到名为WebFormsRazor的github。它做我想要的,它只使用Microsoft引用,我可以用1行代码呈现HTML。

Lit1.Text = RazorTemplate.Render(myModel, "template.cshtml");

有一个缺点,您的剃刀模板必须从名为RazorWebPage的项中继承自WebPageBase的类继承。

@inherits WebFormsRazor.RazorWebPage<myModel>

也许这个限制可以通过更好的代码来克服,但是需要一种方法将poco类模型附加到页面上,以便将它用于剃刀绑定。

也许有更好的方法可以做到这一点,但这就是我现在解决它的方式,它正是我想要的。