2014-07-04 16 views

回答

0

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

在后一种情况下,您可以在代码部分中使用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> 
+0

我使用的是第一种方法,然而,C#代码,我在我的布局页做的,不落实上使用该布局页面进行布局的页面。这就是我需要做的,但由于某种原因,它并没有。 – Mikkel

+0

@ user3250722我误解了你的问题。现在我编辑了我的答案。 – GmG

+0

谢谢你的回答,我曾希望一个简单的布局页面也将布局页面的C#代码传递给它的内容页面,但不幸的是没有。在我的情况下,我正在检查用户是否在布局页面上登录,所以我不必为每个内容页面都做同样的事情,我认为它工作,但显然不是,嘿嘿。感谢你的回答! – Mikkel