2011-05-09 147 views
16

我使用下面的代碼段enable Razor templating in my solution(ASP.NET MVC3外)。是否可以通過輕鬆實現佈局?.NET剃刀引擎 - 實現佈局

背景信息:

我在這一點上(模板編譯成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; 

我能想象在我RazorTemplateBaseLayout屬性。但是之後?據我所知,Html.Partial是一個輔助函數,我可以用它來解析一個模板。但是,如何解析這些方法調用renderBody()renderSection()以接受其他Razor視圖?

+3

@casperOne:我很欣賞的編輯,但是這有「無」做MVC3。我因此回滾了,但其他編輯(除了標籤)也回滾了... – Ropstah 2011-05-09 15:08:03

+2

@Ropstah:我現在看到了(沒有關注鏈接)。你應該在問題中以某種方式指定它(例如,「我在ASP.NET MVC3之外使用Razor模板引擎」,並且「使用ASP.NET MVC3之外的Razor模板引擎」鏈接)以使其他人假定它是一個在ASP.NET MVC3請保留代碼格式;目前它是不乾淨的,並從問題有損 – casperOne 2011-05-09 15:17:21

+2

@Ropstah:。我只是說幹就幹,做到了現在應該一清二楚 – casperOne 2011-05-09 15:20:49

回答

6

我目前正在研究一些非常相似的東西。它是基於Nancy的前端模板框架。我擴展了Phil Haack的Nancy's Razor實現。我設法使Partial,模板幫助者和佈局工作。

要渲染的佈局我有一個佈局屬性和佈局裏面我有一個內容佔位符「{{內容}}」。所以當我渲染視圖,如果佈局屬性設置我渲染布局,然後替換內容佔位符。

該項目被稱爲Appia。看看sample views

這是我baseView implementation基本視點執行和這裏是view engine code。它從MVC Razor實現中借鑑了很多,並且還有一些Nancy特有的東西,但要弄清楚發生了什麼並不難。

+0

好的答案Martin,upvoted! – 2012-05-16 10:17:09