2014-04-14 18 views
0

我想用通用剃刀輔助函數Html.Partial來呈現在他們共同的HTML視圖。使用@ Html.Partial在Sitecore的

舉例來說,我在Sitecore的付款Information.cshtml和代理支付Information.cshtml設置了兩個觀點。這些使用Sitecore渲染引擎呈現。這兩個視圖都有非常類似的HTML,我想把它們放在Sitecore中沒有設置的剃刀視圖中,並用@Html.Partial作爲@ Html.Sitecore()的名字來調用它們。Rendering()作爲後者迫使我在Sitecore中設置一個視圖和模型,我不知道是否有必要。

我的問題是,Sitecore在幕後有沒有什麼需要使用@ Html.Sitecore()。Rendering()輔助方法而不是@ Html.Partial()輔助方法?似乎一切正常,我相信整個視圖應該被緩存,因爲@ Html.Partial調用嵌套在付款信息視圖或設置在Sitecore中的代理支付信息視圖中。

在此先感謝。

回答

0

我Html.Partial使用玻璃的ORM的MVC解決方案的工作。有兩種方法我使用了這種方法,其中假設的模型傳遞給partial的部分與父渲染相同,另一部分是我們即時創建模型的部分。

Assumes parent rendering model is passed: 
@Html.Partial("~/Views/Components/MyPartialView.cshtml") 

Instantiates a new model that is passed in: 
@Html.Partial("~/Views/Components/Navigation/SecondaryNavigationRendering.cshtml", new SecondaryNavigation()) 

父視圖需要在Sitecore中有一個映射模型。輔助視圖在Sitecore中沒有映射模型,但是鍵入接受要傳遞的模型(所以在我的第一個示例中,這將是我的IBasePage模型,在我的第二個示例中,它將是我的SecondaryNavigation模型)。

希望這會有所幫助。

+1

我知道如何建立呼叫的部分Razor視圖,但我不知道是否有任何理由爲什麼我應該使用@ Html.Sitecore()。渲染()在@ Html.Partial() –