Razor 布局页的代码未发送到内容页

Razor 布局页的代码未发送到内容页,razor,razor-2,asp.net-webpages,Razor,Razor 2,Asp.net Webpages,我有一个_siteloayout.cshtml文件,该文件构造了站点,并包含一些C代码。如何将SiteLayout的C代码发送到其所有子页面?我正在使用网页剃须刀2 提前感谢。实现布局页面有两种方法: 在每页的“代码”部分使用布局命令,如中所述 或者使用_PageStart.cshtml文件为单个文件夹中的所有文件初始化相同的布局页面。 在后一种情况下,可以在代码部分使用layout=null禁用单个页面的布局页面 编辑 如果要将数据从母版页传递到部分页,则必须使用RenderPage方法而不是

我有一个_siteloayout.cshtml文件,该文件构造了站点,并包含一些C代码。如何将SiteLayout的C代码发送到其所有子页面?我正在使用网页剃须刀2


提前感谢。

实现布局页面有两种方法:

在每页的“代码”部分使用布局命令,如中所述 或者使用_PageStart.cshtml文件为单个文件夹中的所有文件初始化相同的布局页面。 在后一种情况下,可以在代码部分使用layout=null禁用单个页面的布局页面

编辑

如果要将数据从母版页传递到部分页,则必须使用RenderPage方法而不是RenderBody方法,但站点的结构会完全更改

例如,如果您希望创建一个母版页,从表中提取数据并将其传递到可以更改的部分页,则母版页可以是:

@{
    var db = Database.Open("Northwind");
    var data = db.Query(@"SELECT [Product Id], [Product Name], 
            [English Name] FROM Products ");
    var page = "Partial.cshtml";
}

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        @RenderPage(page, new {gridData = data})
    </body>
</html>
Partial.cshtml中的代码从Page.gridData变量中获取数据,并将其显示在WebGrid中:

@{
    var grid = new WebGrid(Page.gridData);
}

<div>@grid.GetHtml()</div>

我使用的是第一种方法,但是,我在布局页面中使用的C代码没有在使用该布局页面进行布局的页面上实现。这正是我需要做的,但由于某些原因,它根本就不需要。@user3250722我误解了你的问题。现在我已经编辑了我的答案。谢谢你的回答,我本来希望一个简单的布局页面也能将布局页面的C代码传递到它的内容页面,但不幸的是,当时没有。在我的例子中,我正在检查一个用户是否登录到布局页面,这样我就不必对每个内容页面都做同样的事情,我认为这是可行的,但显然不行,呵呵。谢谢你的回答@user3250722要保护多个页面,应使用_PageStart.cshtml。看看这个链接:非常感谢!我试试这个!