динамически визуализировать частичное представление на _layout.cshtml mvc 3 - PullRequest
0 голосов
/ 23 августа 2011

Я хочу отображать различные навигационные ссылки в зависимости от страницы, загруженной в мой файл _layout.cshtml.

Я думал о том, чтобы проверить URL и просто вызвать Html.RenderPartial в блоке if, но это кажется неуклюжим.

Есть ли способ контролировать это с помощью контроллера?

1 Ответ

1 голос
/ 23 августа 2011

Если вам действительно нужны разные навигационные ссылки на разных страницах, то я думаю, что вы должны указать разные страницы макетов на этих отдельных страницах.Эти различные макеты должны затем указать ваш _layout в качестве своего макета, делая его основным макетом

Пример: _navlinks1.cshtml

@{
   Layout = "_layout"
 }

@RenderBody()

@section navlinks
{
    @*create navlinks specific to current page*@
}

Затем на странице _layout вы можете поместить @RenderSection("navlinks", false) там, где выхотите, чтобы переходили навигационные ссылки.

Но если по какой-то причине вам нужен отдельный набор навигационных ссылок для каждой отдельной страницы, то размещение навигационных ссылок в макете может не иметь смысла.Может быть, лучше, чтобы все ваши модели наследовали базовую модель со списком элементов, содержащих данные навигационной ссылки.Затем вызовите частичное представление, которое обрабатывает эти данные в правильные ссылки в ваших представлениях.

...