将HTML呈现为来自razor文件和poco类的字符串

本文关键字:文件 poco 字符串 razor HTML | 更新日期: 2023-09-27 18:12:52

我有一个简单的razor文件_modelTemplate。CSHTML和poco类模型。我想能够通过传递一个模型到_modelTemplate渲染HTML字符串。cshtml

原因:我正在开发一个传统的WebForms应用程序,真的很想使用razor作为模板引擎,为特定的部分生成干净的HTML,而不需要WebForms服务器控件或回发。

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

我想这样写:

Lit1.Text = RenderRazorTemplateAsString(razorFilePath, model);

是否有办法做到这一点,或者我必须建立一些东西?

将HTML呈现为来自razor文件和poco类的字符串

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

我已经把它发布到github称为WebFormsRazor。它做了我正在寻找的,它只使用微软引用,我可以用一行代码渲染HTML。

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

有一个缺点,你的剃刀模板必须继承项目中一个叫做razor网页的类,这个类派生自WebPageBase。

@inherits WebFormsRazor.RazorWebPage<myModel>

也许用更好的代码可以克服这个限制,但是需要一种方法将poco类Model附加到页面上,以便将其用于razor绑定。

也许有更好的方法,但这就是我现在解决它的方法,它满足了我的要求