将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);
是否有办法做到这一点,或者我必须建立一些东西?
我通过创建以下项目解决了这个问题。
我已经把它发布到github称为WebFormsRazor。它做了我正在寻找的,它只使用微软引用,我可以用一行代码渲染HTML。
Lit1.Text = RazorTemplate.Render(myModel, "template.cshtml");
有一个缺点,你的剃刀模板必须继承项目中一个叫做razor网页的类,这个类派生自WebPageBase。
@inherits WebFormsRazor.RazorWebPage<myModel>
也许用更好的代码可以克服这个限制,但是需要一种方法将poco类Model附加到页面上,以便将其用于razor绑定。
也许有更好的方法,但这就是我现在解决它的方法,它满足了我的要求