Modell-Element, übergeben das Wörterbuch ist vom Typ PagedList.PagedList[] aber dieses Wörterbuch erfordert ein modellelement des Typs
Ich versuche zu verwenden, Ansicht-Modelle in meinem Projekt, aber ich habe diesen Fehler:
Den Modell-Element, übergeben das Wörterbuch ist vom Typ
'PagedList.PagedList1[ContosoUniversity.Models.Course]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1[ContosoUniversity.ViewModels.CourseViewModel]'.
Controller:
public ActionResult Index(int? page)
{
int pageNumber = page ?? 1;
var courses = courseService.GetAll();
var coursesViewList = Mapper.Map<IEnumerable<Course>, IEnumerable<CourseViewModel>>(courses);
var model = coursesViewList.ToPagedList(pageNumber, PageSize);
return View(model);
}
Anzeigen:
@model IEnumerable<ContosoUniversity.ViewModels.CourseViewModel>
@using PagedList.Mvc;
@using PagedList;
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Credits)
</th>
<th>
Students
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Credits)
</td>
<td>
@string.Join(",", item.Enrollments.Select(e => e.Student.FullName))
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.CourseID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.CourseID })
</td>
</tr>
}
</table>
@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }))
Könnte mir jemand helfen das problem lösen bitte?
- Die Fehlermeldung ist selbsterklärend, bitte versuchen Sie es zu verstehen. Setzen Sie Haltepunkte in Ihrem controller, und überprüfen Sie den Inhalt der verschiedenen Variablen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben Sie das Modell vom Typ
PagedList.PagedList1<ContosoUniversity.Models.Course>
während Ihr Blick ist stark typisiert mitIEnumerable<ContosoUniversity.ViewModels.CourseViewModel>
.Müssen Sie gehen
IEnumerable<T>
von Aktion oder ein set-Modell Anzeigen zuPagedList<T>
oder Sie können zu überwinden dieses Problem durch das einwickeln von es in einem ViewModel in folgender Weise:In Aktion:
Blick: