PagedList MVC ne contient pas une définition pour PagedListPager

Je ne sais pas pourquoi la propriété pagecount,PageNumber et PageListPager ne contient pas une définition ou n'a pas pu être trouvé. Elle demande si je suis absent une directive using ou une référence d'assembly, mais je l'ai dans mon contrôleur utilisateur.

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
 to 
@Html.PagedListPager( Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter }) )

Remarque: les IMAGES ET le CODE ci-DESSOUS SONT SEULEMENT POUR la RÉFÉRENCE

PagedList MVC ne contient pas une définition pour PagedListPager

PagedList MVC ne contient pas une définition pour PagedListPager

Contrôleurs\UserController.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RecreationalServicesTicketingSystem.Models;
using RecreationalServicesTicketingSystem.DAL;
using PagedList;
namespace RecreationalServicesTicketingSystem.Controllers
{
public class UserController : Controller
{
private IssueContext db = new IssueContext();
//
//GET: /User/
public ViewResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var users = from s in db.Users
select s;
if (!String.IsNullOrEmpty(searchString))
{
users = users.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
|| s.FirstMidName.ToUpper().Contains(searchString.ToUpper()));
}
switch (sortOrder)
{
case "name_desc":
users = users.OrderByDescending(s => s.LastName);
break;
case "Date":
users = users.OrderBy(s => s.EnrollmentDate);
break;
case "date_desc":
users = users.OrderByDescending(s => s.EnrollmentDate);
break;
default:  //Name ascending 
users = users.OrderBy(s => s.LastName);
break;
}
int pageSize = 3;
int pageNumber = (page ?? 1);
return View(users.ToPagedList(pageNumber, pageSize));
}

Vues\Utilisateur\Index.cshtml

@model IEnumerable<RecreationalServicesTicketingSystem.Models.User>
@{
ViewBag.Title = "Users";
}
<h2>Users</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "User", FormMethod.Get))
{
<p>
Find by name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)  
<input type="submit" value="Search" />
</p>
}
<table>
<tr>
<th>
@Html.ActionLink("Last Name", "Index", new { sortOrder=ViewBag.NameSortParm, currentFilter=ViewBag.CurrentFilter })
</th>
<th>First Name
</th>
<th>
@Html.ActionLink("Enrollment Date", "Index", new { sortOrder = ViewBag.DateSortParm })
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstMidName)
</td>
<td>
@Html.DisplayFor(modelItem => item.EnrollmentDate)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.UserID }) |
@Html.ActionLink("Details", "Details", new { id=item.UserID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.UserID })
</td>
</tr>
}
</table>
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
to 
@Html.PagedListPager( Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter }) )
Avez-vous inclus les using déclarations à votre avis? Et vous modèle doit être @model IPagedList<RecreationalServicesTicketingSystem.Models.User> (pas IEnumerable<T>)
J'ai essayé ce que vous avez suggéré et j'ai eu cette erreur. Compilateur Message d'Erreur: CS0246: le type ou Le nom d'espace de noms 'IPagedList' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?) Ligne 32: Ligne 33: Ligne 34: public class _Page_Views_User_Index_cshtml : Système.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modèles.Utilisateur>> { Ligne 35: Ligne 36: #line caché
Vous ne pouvez pas il suffit de changer la question d'origine (et j'ai roulé de dessus vos modifications). Vous avez besoin de @using PagedList; et @using PagedList.Mvc;
Compilateur Message d'Erreur: CS0246: le type ou Le nom d'espace de noms 'IPagedList' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?).Ligne 40: public class _Page_Views_User_Index_cshtml : Système.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modèles.Utilisateur>> {
Oui, il fonctionne ! Merci! Je pensais que Visual Studio met à l'aide d'instructions par défaut quand j'ai installer les paquets pour cette solution.

OriginalL'auteur TykiMikk | 2016-02-23