Подтвердить что ты не робот

Какой смысл использовать @RenderBody в представлении MVC Razor?

В моем расположении бритвы MVC4 я использую @RenderSection, и я не беспокоюсь с @RenderBody.

Затем в представлениях я просто размещаю все в разделах.

Это заставляет меня задаться вопросом, что точка @RenderBody, кроме как облегчите людям, которые не хотят размещать вещи в секциях. Есть ли что-то отличное от @RenderBody и что-то внутри @RenderSection?

4b9b3361

Ответ 1

@RenderBody отображает содержимое вашей страницы, которое не входит в какие-либо именованные разделы. Если все вашего контента находится в пределах одного из ваших определенных разделов, нет смысла. Однако...

В синтаксисе Razor @RenderSection заменяет мастер-страницы. Он позволяет вырезать разделы страницы для определенных областей, а затем разрешать естественную природу основного содержимого контента везде, где размещается объявление @RenderBody.

Скажем, вы пишете счет-фактуру. В области RenderBody будет отображаться та часть страницы, которая содержит позиции вашего счета. Это относится к большинству отчетов; всегда есть секция заголовка, секция тела и нижний колонтитул.

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

<footer>
  @RenderSection("Footer", @<span>This is my footer!</span>)
</footer>

http://msdn.microsoft.com/en-us/vs2010trainingcourse_aspnetmvc3razor_topic2.aspx

http://haacked.com/archive/2011/03/05/defining-default-content-for-a-razor-layout-section.aspx