2010-01-16 46 views
0

在MVC中實現部分ascx視圖的可視繼承最佳方式是什麼?將公共佈局應用於ASP.NET MVC中的ascx控件MVC

我有主Site.Master文件,它提供了頁眉,頁腳,側邊欄和主要內容區域。然後我有一個Info.Master,它使用Site.Master作爲母版頁,它爲幾乎相同的頁面提供了一個通用佈局。然後,網站上所有這些類似的「信息」頁面都將Info.Master設置爲其主頁面。

現在我想爲側欄上出現的ascx部分視圖做同樣的事情,因爲我有一些控件,所有「看起來」都是相同的,包括頁眉,頁腳等?

回答

0

您可以使用普通的ASPX視圖作爲部分,並使用常見的局部佈局元素爲它們創建另一個母版頁。查看Jeffrey Palermo的this post瞭解更多關於此技術的信息。

另一種選擇是將常見的局部佈局元素放置在您的主要母版頁之一中,並利用視圖位置。例如,如果您有一個名爲「Sidebar」的部分內容僅針對每個控制器進行更改,則可以在Views/Shared目錄中創建一個通用部分,並在每個Views/<控制器名稱>目錄中創建更具體的部分,部分將被覆蓋。

<div id="sidebarheader">...</div> 
    <% Html.RenderPartial("Sidebar"); %> 
<div id="sidebarfooter">...</div> 
+0

謝謝,那個鏈接做的伎倆。我曾考慮過使用視圖而不是局部視圖,但我認爲可能會有性能下降。雖然有人對此進行了基準測試,但沒有發現明顯的差異,但是對該鏈接的底部發表了評論,所以這對我有用! – krisg 2010-01-17 08:54:12