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.IEnumerable1[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.
InformationsquelleAutor Warlock | 2014-11-06
Schreibe einen Kommentar