Решение для: элемент модели, переданный в словарь, имеет тип 'System.Коллекции.Generic.List`1[]', но этот словарь требует модельного элемента типа 'System.Коллекции.Общий.IEnumerable`1[]'
Всем привет,
Вот моя модель, определенная в приложении MVC4:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Collections; namespace BindPublicationsData.Models { public class Publication { public Int64 id { get; set; } public string title { get; set; } public string abstractInfo { get; set; } public string description { get; set; } public string authors { get; set; } public string rationale { get; set; } public string keyTakeways { get; set; } public string thumbnail { get; set; } } }
Ниже приведен класс контроллера:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace BindPublicationsData.Controllers { public class PublicationController : Controller { private KnowledgeManagerEntities db = new KnowledgeManagerEntities(); public ActionResult Index() { var publicationsList = (from eachPub in db.KM_Publication select eachPub).ToList(); return View(db.KM_Publication.ToList()); } } }
И наконец ниже приведен мой взгляд:
@model IEnumerable<BindPublicationsData.Models.Publication> @{ ViewBag.Title = "Index"; } <h2>Publication</h2> <table> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.title) </td> <td> @Html.DisplayFor(modelItem => item.description) </td> <td> @Html.DisplayFor(modelItem => item.abstractInfo) </td> </tr> } </table>
После запуска этого приложения я получаю следующую ошибку:
Элемент модели, передаваемый в словарь, имеет тип 'System.Коллекции.Generic.List`1[BindPublicationsData.KM_Publication]', но для этого словаря требуется элемент модели типа 'System.Коллекции.Общий.IEnumerable`1[BindPublicationsData.Модели.Публикация]'.
Может ли кто-нибудь сказать мне, почему я получаю эту ошибку?
[no name]
если в контроллере вы добавляете return View(db.KM_Publication.Список());
тогда зачем нужна операция с БД, которую вы проделали выше?
Ты возвращаешься .Список тип на вид, но в целях вы воспользовались интерфейс IEnumerable
Nathan Minier
Кажется вероятным, но это не изменит ошибку.
Измените свой вид, чтобы использовать конкретный тип в качестве модели
@model List<BindPublicationsData.Модели.Публикация>