Могу ли я иметь / цепочку более 1 _Layout страниц в MVC 3? для страницы cshtml? - PullRequest
18 голосов
/ 01 ноября 2011

У меня есть страница макета и некоторые страницы, которые ее используют. Но я хочу реализовать элемент управления навигацией на некоторых из подстраниц, которые его используют. Поэтому я хочу использовать другую вложенную страницу макета. Возможно ли это?

Ответы [ 3 ]

30 голосов
/ 01 ноября 2011

Да, отлично работает.Просто скажите вашей странице макета использовать другую страницу макета

@{ Layout = "pathToMyOtherLayout"; }

Вы также можете использовать разделы для перехода к родительским макетам.Например:

@Section Headers {@RenderSection("Headers")}
9 голосов
/ 01 ноября 2011

Вы можете связать страницы так же, как и мастер-страницы, в _ViewStart.cshtml вы увидите, как определяется страница макета:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Вы можете просто добавить этот раздел в _Layout.cshtml для справки.другого родителя или добавьте его в отдельное представление для ссылки на другое представление макета.

В ScottGu есть сообщение с дополнительной информацией о Раскладки макетов

Я использую этот точный методиз-за того, о чем вы говорите на некоторых сайтах электронной коммерции, где вы находитесь в процессе оформления заказа, я не хочу, чтобы в представлении были какие-либо отвлекающие факторы (навигация и т. д.), поэтому вместо какого-то особого случая if checkout в макете я делаю1011 * и Layout, который «наследует» от него, поэтому мне не нужно повторять весь html брендинга.

1 голос
/ 01 ноября 2011

Вы можете решить эту проблему достаточно просто на одной странице макета, используя разделы.чек http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

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