C# 如何从_Layout.cshtml呈现特定字段

C# 如何从_Layout.cshtml呈现特定字段,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我有Home.cshtml和_layout.cshtml这样的页面。_layout.cshtml中的页眉、菜单栏和页脚类。我只想要my Home.cshtml的页眉和页脚,如何获取 在_layout.cshtml中执行以下操作 <html lang="en"> <head> </head> <body> <div class="header"> /*code*/ </div>

我有Home.cshtml和_layout.cshtml这样的页面。_layout.cshtml中的页眉、菜单栏和页脚类。我只想要my Home.cshtml的页眉和页脚,如何获取

在_layout.cshtml中执行以下操作

<html lang="en">
<head>
</head>
<body>
        <div class="header">
         /*code*/
        </div>
        <div class="Menubar">
        /*code*/
        </div>
         <div class="Footer">
         /*code*/
        </div>
</body>

/*代码*/
/*代码*/
/*代码*/

请尝试以下代码片段

\u layout.cshtml

<body>
    @section header
    {
        <div class="header">
            /*code*/
        </div>
    }
    @section Menubar
    {
        <div class="Menubar">
            /*code*/
        </div>
    }
    @section Footer
    {
        <div class="Footer">
            /*code*/
        </div>
    }
</body>
@RenderSection("Menubar", false)

注意:我已经为您各自的分区添加了三个部分。默认情况下,它将在所有页面中显示其内容。如果要在任何视图中隐藏任何部分,请将第二个参数传递为false。

我尝试了这个方法,但其他方法也可以@Home.cshtml中的Menubar{}部分和_布局中的@RenderSection(“Menubar”,false)方法。如果在_布局中写入@RenderSection(“Menubar,false)方法,则每次都会隐藏Menubar部分。那么为什么要在Home.cshtml中添加Manubar部分呢?是的,你是对的。我试了一下,我们建议它工作正常。但如果我把会话放在_布局中。我必须在所有其他页面上实现。我说得对吗?所以我使用另一个布局,我需要3页这样的页面。你能详细说明你的场景吗?