我有一个简单的剃刀文件_modelTemplate.cshtml和一个poco类模型。 我希望能够通过将模型传递给_modelTemplate.cshtml来呈现HTML字符串
原因:我正在研究遗留的WebForms应用程序,并且真的只想使用razor作为模板引擎来为不需要WebForms服务器控件或回发的特定部分生成干净的HTML。
我不需要Razor文件中的任何MVC助手,只需要一个简单的模板和绑定模型。我想我可以使用razor生成HTML,然后将渲染的字符串绑定到WebForm的.aspx页面中的Literals的.Text属性。
我在想:
Lit1.Text = RenderRazorTemplateAsString(razorFilePath, model);
有没有方法可以做到这一点,还是我需要构建一些东西?
答案 0 :(得分:0)
我通过创建以下项目解决了这个问题。
我已将其发布到名为WebFormsRazor的github。它做我想要的,它只使用Microsoft引用,我可以用1行代码呈现HTML。
Lit1.Text = RazorTemplate.Render(myModel, "template.cshtml");
有一个缺点,您的剃刀模板必须从名为RazorWebPage的项中继承自WebPageBase的类继承。
@inherits WebFormsRazor.RazorWebPage<myModel>
也许这个限制可以通过更好的代码来克服,但是需要一种方法将poco类模型附加到页面上,以便将它用于剃刀绑定。
也许有更好的方法可以做到这一点,但这就是我现在解决它的方式,它正是我想要的。