我正在使用以下代码片段到enable Razor templating in my solution(ASP.NET MVC3之外)。是否可以轻松实现布局?
我就在这时(模板被编译成compiledTemplateAssembly
):
var template = (RazorTemplateBase<TModel>) compiledTemplateAssembly.
CreateInstance("RazorSpace." + entry.TemplateName + "Template");
template.Model = model;
template.Execute();
var output = template.Buffer.ToString();
template.Buffer.Clear();
return output;
我可以想象我的Layout
课程上有RazorTemplateBase
属性。但是之后?我理解Html.Partial
是一个帮助函数,我可以实现它来解析模板。但是,如何解析这些方法调用renderBody()
或renderSection()
以接受其他Razor视图?
答案 0 :(得分:6)
我目前正在做一些非常相似的事情。它是一个基于Nancy的前端模板框架。我扩展了Phil Haack的Nancy's Razor实现。我设法让Partials,Templated Helpers和Layouts工作。
为了渲染布局,我有一个Layout属性,在布局中我有一个内容占位符“{{content}}”。因此,当我在设置Layout属性时渲染视图时,我渲染布局,然后替换内容占位符。
该项目名为Appia。看看sample views。
这是我的baseView implementation baseView实现,这里是view engine code。它从MVC Razor实现中借鉴了很多,并且还有一些Nancy特定的东西,但是要弄清楚发生了什么并不是太难。