asp.net mvc3,如何正确实现侧边栏部分?

时间:2012-01-26 21:24:33

标签: asp.net-mvc asp.net-mvc-3

我使用asp.net mvc3构建我的网站,布局是2列,主要内容是侧边栏。

我为侧边栏创建了一个部分。这个侧边栏将显示前10篇文章。我现在所做的是查询每个控制器上的前10篇文章。

有没有办法在一个地方完成并在所有控制器上使用它?

1 个答案:

答案 0 :(得分:6)

您可以使用Html.RenderAction([methodname], [controllername])执行此操作。所以在你的_Layout.cshtml中,你最终会得到类似的东西:

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

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

然后在ArticleController

private readonly int MaxArticles = 10;

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

    return PartialView(model);
}

使用属性ChildActionOnly标记操作意味着只能通过调用Html.Action()Html.RenderAction()来调用该操作。