Контент по умолчанию во вложенном макете - PullRequest
1 голос
/ 12 декабря 2010

У меня есть базовый макет, BaseLayout.cshtml:

<html>
<body>
    @RenderBody()
    <div id="footer">
        @if (!IsSectionDefined("Footer")) {
            Default footer markup
        }
        else {
            @RenderSection("Footer")
        }
    </div>
</body>
</html>

Я извлекаю из этого вложенный макет WithSidebar.cshtml:

@{ Layout = "BaseLayout.cshtml"; }

<div>
    <div>
        @RenderBody()
    </div>
    <div>Sidebar</div>
</div>

Какие изменения необходимо внести в макет WithSidebar:

  1. Чтобы разрешить переопределение раздела нижнего колонтитула в BaseLayout в представлении?
  2. Не переопределить нижний колонтитул по умолчанию и придерживаться того, что определено в BaseLayout?

Я работаю против ASP.NET MVC 3 RC2. Я прочитал эту запись Марцина Добоша: http://blogs.msdn.com/b/marcinon/archive/2010/12/08/optional-razor-sections-with-default-content.aspx, но мне не нравится, что она работает чисто во вложенных макетах.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Моя оригинальная техника требует дополнительной функциональности.Я написал новое сообщение , которое решает проблему:

0 голосов
/ 12 декабря 2010

Чтобы переопределить раздел:

@section Footer {
    <div>Put your overriden content here</div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...