Передача правильной модели в частичное представление

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

У меня есть частичное представление, которое добавляется следующим образом:

        <% Html.RenderPartial("~/Views/ForumPosts/ForumPostCreateForm.ascx", ViewData.Model); %>

И верхняя часть частичного вида выглядит так:

<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewUserControl<xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel>" %>

Ошибка, которую я получаю, следующая:

Элемент модели, переданный в словарь, имеет тип "xxx.Core.ForumThread", но для этого словаря требуется элемент модели типа "xxx.Web.Controllers.ForumThreadsController+ForumThreadFormViewModel".

Если не ошибаюсь, оба берут модель под названием ForumThread, но, видимо, я что-то упустил.


person Dofs    schedule 13.12.2010    source источник


Ответы (3)


Если не ошибаюсь, оба используют модель под названием ForumThread...

Согласно коду, который вы разместили, частичное представление принимает xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel. Либо измените верхнюю часть вашего частичного представления, либо найдите способ передать ForumThreadFormViewModel объекту ForumThread.

Другим решением было бы использовать RenderAction, чтобы позволить действию генерировать ForumThreadFormViewModel, которое вы хотите.

person StriplingWarrior    schedule 13.12.2010

Вам необходимо убедиться, что вы собираетесь передать модель в частичное представление, попробуйте передать новый объект модели в частичное представление.

person Ashwini Jindal    schedule 06.11.2012

Убедитесь, что ваша Модель имеет тип xxxx.Web.Controllers.ForumThreadsController.ForumThreadFormViewModel.

Чтобы проверить это, посмотрите на точку в вашем контроллере, где он возвращает View. Объект, который вы помещаете в метод, должен иметь тип ForumThreadFormViewModel.

person Andrey Tagaew    schedule 13.12.2010