2012-01-26 174 views
1

我使用asp.net mvc3構建我的網站,佈局是2列,帶有側邊欄的主要內容。asp.net mvc3,如何正確實現側邊欄?

我爲邊欄創建了一個部分。這個側邊欄將顯示前10篇文章。我現在所做的是查詢每個控制器上的前10篇文章。

有沒有辦法在一個地方做到這一點,並在所有控制器上使用它?

回答

6

您可以使用Html.RenderAction([methodname], [controllername])來做到這一點。因此,在您_Layout.cshtml,你可能最終的東西,如:在你的ArticleController

<div id="content"> 
    @RenderBody() 
</div> 

@{ Html.RenderAction("ShowTopArticles", "Article"); } 

然後:

private readonly int MaxArticles = 10; 

[ChildActionOnly] 
public PartialViewResult ShowTopArticles() 
{ 
    var model = articleRepository.GetTopArticles(MaxArticles); 

    return PartialView(model); 
} 

標記的動作與屬性ChildActionOnly意味着它只能通過調用來調用到Html.Action()Html.RenderAction()

+0

非常感謝你,這是我正在尋找的。 – qinking126

+0

@feelexit不客氣! –