我有一个_SiteLayout.cshtml文件,用于构建网站并在其上有一些C#代码。如何将_SiteLayout的C#代码发送到其所有子页面?我正在使用WebPages Razor 2。
提前谢谢。
答案 0 :(得分:0)
实现布局页面有两种方法:
Layout
命令,如Creating a Consistent Layout in ASP.NET Web Pages (Razor) Sites _PageStart.cshtml
文件(Customizing Site-Wide Behavior for ASP.NET Web Pages (Razor) Sites)初始化单个文件夹中所有文件的相同布局页。在后一种情况下,您可以使用代码部分中的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>