我是Asp.Net MVC3的初学者。谁能解释一下此代码的含义:

@section head
{
    @RenderSection("head", false)
}

在ScottGu的文章中:

http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

有一个RenderSection的示例,但它定义了@section,然后使用了@RenderSection。在这种情况下,定义了head头,并且在该头中渲染了同一头,这让我感到困惑。

RenderSection做什么,我如何在这里找到正在渲染的东西?

最佳答案

斯科特曾经写过



因此,RenderSection的作用是渲染模板/ View 中定义的部分(而不是常规的_Layout)。
在“在我们的 View 模板中实现“SideBar”部分”下面的内容中,他进一步解释了如何实现该部分。

因此,总而言之,您将拥有一个名为“head”的部分,该部分将在 View 中进一步向下/嵌套的位置显示一个名为“head”的部分。

编辑:看看http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx看看我的意思是嵌套 View -但请注意,这篇文章已有一年多了。

MasterLayout:

@RenderSection("head", false)

子版面:
@{
    Layout = "~/Views/_MasterLayout.cshtml";
}
@section head
{
    @RenderSection("head")
}

内容:
@{
    Layout = "~/Views/_SubLayout.cshtml";
}
@section head
{
    <title>Content-Layout</title>
}

10-07 22:17