【发布时间】:2011-08-21 16:11:48
【问题描述】:
我正在使用以下 sn-p 到 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;
我可以想象在我的 RazorTemplateBase 类上有一个 Layout 属性。但是之后?我知道Html.Partial 是一个辅助函数,我可以实现它来解析模板。但是如何解析这些方法调用 renderBody() 或 renderSection() 以接受其他 Razor 视图?
【问题讨论】:
-
@casperOne:我很欣赏编辑,但这与 MVC3“无关”。因为这个我回滚了,但是其他编辑(除了标签)也被回滚了......
-
@Ropstah:我现在看到了(没有点击链接)。您应该以某种方式在问题中指定这一点(即“我在 ASP.NET MVC3 之外使用 Razor 模板引擎”与“在 ASP.NET MVC3 之外使用 Razor 模板引擎”链接)以使其他人清楚(大多数将假定它在 ASP.NET MVC3 中。请保留代码格式;目前它不干净并且有损于问题。
-
@Ropstah:我只是继续做了。现在应该是晴天了。
-
了解 mvc 之外的任何 razor 都不包含那些辅助函数。 MVC3 专门为 RazorEngine 创建了这些。通过将布局模板添加为基本模板的属性的一部分,您可以使用razor-engine.com 轻松添加自己的模板。
-
@casperOne:你是明星! :)。 @BuildStarted:我知道我需要自己创造一些东西。问题是我不明白如何从模板中“获取”这些方法调用并将它们转换为命名部分或..?引擎有多个“主机”或“包装器”,我发布的链接在我的情况下有效,所以我正在使用那个...... razor-engine.com 上的那个不同吗?