Макет бритвы с моделью - PullRequest
3 голосов
/ 27 марта 2011

У меня есть макет, который имеет два частичных вида, один для входа в систему и один для регистрации.

//Login (In layout)
@Html.Partial("_LoginPartial")
and in the partial
@model LogOnVM

///register (in layout)
@Html.Partial("_RegisterPartial")
and in the partial
@model RegisterVM

Как показано, у них обоих разные модели.

Моя проблема в том, что когда я пытаюсь добавить еще одно представление (с другой моделью), полученное из этого макета, я получаю следующую ошибку

Элемент модели передан в словарь имеет тип «HomeVM», но этот словарь требует элемента модели типа 'LogOnVM'.

Как можно отобразить частичные элементы в макете, не имея проблем с другими представлениями?

Спасибо

1 Ответ

8 голосов
/ 27 марта 2011

Ну, я нашел решение.

Вместо вызова партиалов с помощью RenderPartial, я создал два ActionResult метода в Account Контроллер:

  1. Одиндля входа в систему (LoginPartial)
  2. Один для регистрации (RegisterPartial).

Затем в макете я вызываю их с RenderAction():

Html.RenderAction("LoginPartial", "Account");
Html.RenderAction("RegisterPartial", "Account");

Я не знаю, лучший ли это подход к производительности, но он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...