渲染部分的这段代码是什么意思

本文关键字:代码 是什么 意思 段代码 染部 | 更新日期: 2023-09-27 18:35:28

我是MVC3 Asp.Net 初学者。任何人都可以解释一下这段代码的含义:

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

关于斯科特古的文章:

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

有一个 RenderSection 的例子,但它定义了@section然后在某处使用了@RenderSection。在这种情况下,部分标题被定义,并且在其中本身正在呈现相同的头部,这使我感到困惑。

RenderSection 有什么作用,我如何找到这里渲染的内容?

渲染部分的这段代码是什么意思

斯科特一度写道

"RenderSection()"帮助程序方法的第一个参数指定 我们要在该位置呈现的部分的名称 布局模板。 第二个参数是可选的,它允许我们 定义我们渲染的部分是否是必需的。 如果 部分是"必需的",那么 Razor 将在运行时抛出错误,如果 该部分未在基于 在布局文件上(这样可以更轻松地跟踪内容) 错误)。

因此,RenderSection 所做的是渲染模板/视图中定义的部分(而不是一般_Layout)。在"在我们的视图模板中实现"侧边栏"部分"下,他解释了如何实现一个部分。

总而言之,您拥有的是一个名为"head"的部分

,它在更向下/嵌套的视图中呈现一个名为"head"的部分。

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

主布局:

@RenderSection("head", false)

子布局:

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

内容:

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

在视图中定义该部分,并在 _Layout.cshtml 中呈现它。

在您的布局(母版)页面中放置以下内容:

 @RenderSection("head", false)

在您的视图页面中放置以下内容:

@section head {
PUT VIEW SPECIFIC CODE HERE
}

这里的"head"是您可以在视图页面中定义的部分名称。

它有点像我们在 asp.net 网络表单中使用的ContentPlaceHolder。

通过在_Layout文件中使用@rendersection,您可以控制主.cshtml代码中各部分的布局和顺序(假设它称为index.cshtml)

例如,如果您在_Layout文件的末尾有一个@RenderSection("scripts",false),那么即使"scripts"部分放在index.cshtml文件的顶部,它也会在底部呈现。 从而确保在整个应用程序中以一致的方式加载所有脚本部分。

如果将来您出于某种原因决定将所有脚本移动到 head 部分,您只需移动_Layout文件中的一行代码即可轻松完成此操作。