asp.net mvc3, как правильно реализовать раздел боковой панели? - PullRequest
1 голос
/ 27 января 2012

Я создаю свой веб-сайт, используя asp.net mvc3, макет состоит из 2 столбцов, основной контент с боковой панелью.

Я создаю раздел для боковой панели. эта боковая панель покажет 10 лучших статей. то, что я сделал сейчас, это запрос 10 лучших статей на каждом контроллере.

есть ли способ сделать это в одном месте и использовать его на всех контроллерах?

1 Ответ

6 голосов
/ 27 января 2012

Вы можете сделать это, используя 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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...