14

在我正在使用的 MVC4 剃须刀布局中@RenderSection,我不打扰@RenderBody.

然后在视图中,我只是将所有内容放在部分中。

这让我想知道@RenderBody除了让不想把东西分成几部分的人更容易之外还有什么意义。@RenderBody与 a有什么不同@RenderSection吗?

4

1 回答 1

20

@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

于 2013-01-14T16:31:07.270 回答