Ошибка при вызове Html.Partial ("LogOnPartial") в шаблоне проекта MVC 3 - PullRequest
0 голосов
/ 03 февраля 2011

Все отлично работает из коробки, но после добавления нового контроллера, который возвращает строго типизированное представление, используя модель «MySite.Models.Cars», я получаю сообщение об ошибке при вызове Html.Partial («LogOnPartial») вSiteLayout.cshtml.Я называю новый вид следующим образом:

return View(db.Cars.FirstOrDefault());

Это ошибка:

Элемент модели, переданный в словарь, имеет тип «MySite.Models.Cars», нодля этого словаря требуется элемент модели типа «MySite.Models.LogOnModel».

Очень расстраивает.Когда я использую новый вид без предоставления модели, он снова работает.

return View();

Я устанавливаю точно такие же условия в MVC 2 / ASPX, и он работает просто отлично.Я не уверен, является ли это проблемой MVC 2 / MVC 3 или ASPX / Razor.На самом деле это может быть проблема поздней ночи ...

Очень благодарен за любой ответ.

РЕДАКТИРОВАТЬ:

Первая строка из LogOnPartial.cshtml (я удалил подчеркивание)

@model MySite.Models.LogOnModel

Первая строка из Index.cshtml (новый вид):

@model MySite.Models.Cars

Ответы [ 4 ]

2 голосов
/ 03 февраля 2011

По умолчанию партиал _LogOnModel.cshtml, созданный шаблоном, не является строго типизированным и не требует никакой модели. Если вы изменили его так, что он требует модель, вам нужно будет передать эту модель при вызове:

@Html.Partial("_LogOnPartial", SomeLogonModelInstance)
0 голосов
/ 21 июля 2013

Похоже, вы используете пользовательское членство и частичное представление (_LogOnPartial) на странице _Layout. По умолчанию на странице _Layout нет контроллера, поэтому не используйте на ней никакую модель, если в этом нет необходимости. Поместите вашу LogOnModel со страницы _Layout и оставьте LogOff и LogOn ActionLikns на _LogOnPartial, как и в случае использования EF по умолчанию.

0 голосов
/ 03 февраля 2011

Кажется, что это может быть проблема поздней ночи.Какой тип частичного?Из того, что говорится в сообщении об ошибке, кажется, что вы переходите в тип модели «Автомобили», когда часть ищет модель входа в систему.Это могло быть что-то, что было создано автоматически при создании Частичного.

0 голосов
/ 03 февраля 2011

Опубликовать код из вашего просмотра.(по крайней мере, первые несколько строк).Ваше мнение ожидает Модель определенного типа (LogOnModel), но вы переходите в другой тип (Автомобили).

Вы должны увидеть эту LogOnModel, указанную в первой строке вашего View.Если вы видите ошибку, продолжайте и исправьте ее, если нет, отправьте сюда копию с вашей точкой зрения, и мы вам поможем

...