在MVC Razor视图中使用@RenderBody有什么意义?

13 asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

然后在视图中我只是将所有内容放在一起.

这让我想知道@RenderBody除了让那些不想把事情分成几部分的人更容易之外,还有什么意义.是否有什么不同@RenderBody和内在的东西@RenderSection

Rob*_*vey 19

@RenderBody呈现不在任何命名部分内的页面内容. 如果您的所有内容都在您定义的某个部分中,那就没有意义了.然而...

在Razor语法中,@RenderSection替换母版页.它允许您为特定区域划分页面的各个部分,然后允许内容的主体自然地出现在@RenderBody声明所在的任何位置.

假设你正在写发票.该RenderBody区域是包含发票行项目的页面部分.大多数报告都是如此; 总是有标题部分,正文部分和页脚部分.

据推测,在网页的适当区域中呈现一个部分可以让您获得适当的语义行为,例如以始终显示在页面底部的方式设置页脚样式.

<footer>
  @RenderSection("Footer", @<span>This is my footer!</span>)
</footer>
Run Code Online (Sandbox Code Playgroud)

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