2012-01-26 176 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不客气! –