MVC 3 Рендеринг раздела в области

#asp.net-mvc-3 #asp.net-mvc-3-areas

#asp.net-mvc-3 #asp.net-mvc-3-области

Вопрос:

Я пытаюсь отобразить раздел, который определен в файле _layout, из моей пользовательской области.

В моей области у меня есть _ViewStart, который указывает на _layout в корневом сайте.

Раздел, который я пытаюсь использовать, находится в теге head, но в моей области он помещается в тело.

Страница, отображаемая на корневом уровне, работает нормально.

~/Views/Shared/_Layout.cshtml

 <head>

    @RenderSection("header", true)
</head>
<body>
 ....
</body>
 

~/Areas/UserMedia/Views/_ViewStart.cshtml

 @{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 

~/Areas/UserMedia/Views/ManageProjectMedia.cshtml

 @{
    ViewBag.Title = "ManageProjectMedia";
}

@section header{
{
<!-- scripts and styles -->
}

<div>
 ... page content
</div>
 

Комментарии:

1. Любой код, который вы можете предоставить, был бы хорош.

Ответ №1:

В своем вопросе вы указали пример кода, путь ~/Views/_layout.cshtml к которому и в вашем файле _ViewStart.cshtml в вашей области, у вас есть следующий код :

 @{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 

Я уверен, что вы найдете здесь семь отличий 🙂

Семь отличий были шуткой, но в любом случае. Ваш _Layout.cshtml находится под ~/Views/ , но вы ссылаетесь _Layout.cshtml на то, что находится под ~/Views/Shared/ .

Комментарии:

1. разница в семи? Если вы имеете в виду _layout.cshtml и _Layout.cshtml, я пропустил это, когда обновлял вопрос.