2013-02-11 3 views
1

У меня есть веб-приложение MVC4 и созданы 2 области. Я не вижу, как использовать для них разные макеты. Когда я создал области, для них не было общей папки, Я пробовал создать один в области с именем BO и копировать файл _layout.cshtml, не повезло. Скопировал файл _viewstart.cshtml там,
переименован в _layout.cshtml к и не изменил вызов макета в _viewstart.cshtml района BO кMVC4 Как настроить различные макеты и CSS для областей

Layout = ~/Areas/BO/Shared/Views/_BOLayout.cshtml"; 

еще не повезло, ни расположение, ни CSS & JS файлы когда я перехожу к домашней странице области BO. Многие вещи вокруг областей создания используют корень _layout.cshtml, но я не могу найти многого, чтобы использовать разные для каждой области. Любые предложения, пожалуйста?

PS. Вышеупомянутый (скопированный файл _viewstart.cshtml) также ломает вещи; Я получаю: Тип «ASP._Page_Areas_BO__ViewStart_cshtml» не наследуется от «System.Web.WebPages.StartPage». Ошибка при навигации по области.

ответ

4

Следующая структура должна работать для Admin области, например:

~/Areas/Admin/Views/Shared/_AdminLayout.cshtml:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
</head> 
<body> 
    @RenderBody() 
</body> 
</html> 

~/Areas/Admin/Views/_ViewStart.cshtml:

@{ 
    Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml"; 
} 

~/Areas/Admin/Views/Foo/Index.cshtml:

<h2>Index view of FooController in Admin area</h2> 
+0

Спасибо Дарин! из вашего ответа я понял 2 ошибки; У меня был «Shared/Views /» вместо «Views/Shared /», а _viewstart.cshtml был в корне области. Исправлен путь и перемещен _viewstart.cshtml в общую папку в этой области, и он отлично работает. Спасибо. – Richard

Смежные вопросы