Как разделить @RenderBody () на две части - PullRequest
2 голосов
/ 22 июня 2019

Я использую ASP.NET Core 2.2.Проблема в том, что я не знаю, где использовать @RenderBody() на моей странице _Layout .Это представление того, что я хочу сделать: enter image description here

Зеленые части должны быть из _Layout , а белые - из HomePage.cshtml .Моя Домашняя страница состоит из двух частей: слайдера и списка содержимого под ним. Это то, что я пробовал, но это не отвечает моим потребностям, потому что я не могу поместить слайдер в него.

это _Layout

<html>
   <body>
       <main>
       <header></header>
       <div class="left-col">
       <div class="content">@RenderBody()</div>
       <div class="right-col">
       <footer></footer>
    </main>
   </body>
</html>

1 Ответ

3 голосов
/ 22 июня 2019

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

HomePage.cshtml

@{
    ViewBag.Title = "Home Page";
}

@section Slider {

   <div>My HomePage slider</div>

}

<p>My HomePage content</p>

Макет будет проверять, существует ли раздел, и отображать его, если он существует

_Layout.cshtml

<html>
   <body>
       <main>
       <header></header>
    @if (IsSectionDefined("Slider")) {
       <div class="homepage-slider">
         @RenderSection("Slider", required: false)
       </div>
    }
       <div class="left-col">
       <div class="content">@RenderBody()</div>
       <div class="right-col">
       <footer></footer>
    </main>
   </body>
</html>

Вы, очевидно, должны были бы указать, какое стилевое оформление необходимо для размещения секции там, где это необходимо.

Ссылка Макет в ASP.NET Core: разделы

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