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

时间:2013-01-14 16:28:15

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

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

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

这让我想知道除了@RenderBody之外还有什么意义 让不想放东西的人更容易。与@RenderBody@RenderSection内的某些内容有什么不同吗?

1 个答案:

答案 0 :(得分:18)

@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