Есть два способа реализации макет страницы:
В последнем случае вы можете отключить страницу макета для одной страницы, используя 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# код, который я делаю в моей странице макета, не реализована страницы, которые используют эту страницу макета для макета. Это то, что мне нужно сделать, но по какой-то причине просто нет. – Mikkel
@ user3250722 Я неправильно понял ваш вопрос. Теперь я отредактировал свой ответ. – GmG
Спасибо за ваш ответ, я надеялся, что простая страница макета также передаст код C# страницы макета на его страницы содержания, но, к сожалению, не тогда. В моем случае я проверяю, зарегистрирован ли пользователь на странице макета, поэтому мне не нужно делать то же самое для каждой страницы контента, и я думал, что это сработало, но, видимо, нет, хе-хе. Спасибо за ответ! – Mikkel