Как я могу иметь динамический вложенный _Layout с бритвой? - PullRequest
0 голосов
/ 26 апреля 2011

Возможно ли иметь динамические вложенные страницы _layout?

Вот что я получил:

_ShopDetailsLayout.cshtml (Динамическая вложенная _layout):

@model MVC.Web.Areas.Shop.Models.ShopDetailViewModel

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

Кредиты.cshtml:

@model MVC.Web.Areas.Shop.Models.CreditsViewModel

@{
    ViewBag.Title = "Credits";
    Layout = "~/Areas/Game/Views/Shared/_ShopDetailsLayout.cshtml";
}

проблема, с которой я сталкиваюсь, состоит в том, что другие страницы, например Credits.cshtml, использующие вложенный макет, не имеют такой же @model, поэтому я получаю эту ошибку:

Элемент модели, передаваемый в словарь, имеет тип 'MVC.Web.Areas.Shop.Models.CreditsViewModel', но для этого словаря требуется элемент модели типа 'MVC.Web.Areas.Shop.Models.ShopDetailViewModel'.

Я надеюсь, что любой может помочь

1 Ответ

0 голосов
/ 27 апреля 2011

Вам необходимо изменить макеты, чтобы они были совместимы с фактической моделью.
Возможно, вы захотите использовать общий базовый тип или придерживаться модели dynamic по умолчанию.

...