PagedList MVC enthält keine definition für PagedListPager
Ich weiß nicht, warum PageCount,Seitennummer und PageListPager nicht enthalten, eine definintion oder konnte nicht gefunden werden. Es ist zu Fragen, wenn ich bin fehlt eine using-Direktive oder ein assembly-Verweis, aber ich habe es in meinem user-controller.
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 }) )
Hinweis: BILDER UND CODE im folgenden SIND NUR FÜR REFERENZ
Controllers\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));
}
Views\User\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 }) )
Haben Sie enthalten die
Ich habe versucht, was Sie vorgeschlagen, und ich habe diesen Fehler. Compiler-Fehlermeldung: CS0246: Der Typ oder namespace-name 'IPagedList' konnte nicht gefunden werden (fehlt eine using-Direktive oder ein Assemblyverweis?) Zeile 32: Zeile 33: Zeile 34: public class _Page_Views_User_Index_cshtml : System.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modelle.Benutzer>> { Zeile 35: Zeile 36: #line hidden
Sie können nicht ändern Sie einfach die ursprüngliche Frage (und ich habe ein Rollback Ihrer änderungen). Sie brauchen beide
Compiler-Fehlermeldung: CS0246: Der Typ oder namespace-name 'IPagedList' konnte nicht gefunden werden (fehlt eine using-Direktive oder ein Assemblyverweis?).Zeile 40: public class _Page_Views_User_Index_cshtml : System.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modelle.Benutzer>> {
Ja, es funktioniert ! Danke! Ich dachte, Visual Studio bringt in der using-Anweisungen als Standard, wenn ich Pakete installieren zu dieser Lösung.
using
Aussagen aus Ihrer Sicht? Und Sie Modell sein muss @model IPagedList<RecreationalServicesTicketingSystem.Models.User>
(nicht IEnumerable<T>
)Ich habe versucht, was Sie vorgeschlagen, und ich habe diesen Fehler. Compiler-Fehlermeldung: CS0246: Der Typ oder namespace-name 'IPagedList' konnte nicht gefunden werden (fehlt eine using-Direktive oder ein Assemblyverweis?) Zeile 32: Zeile 33: Zeile 34: public class _Page_Views_User_Index_cshtml : System.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modelle.Benutzer>> { Zeile 35: Zeile 36: #line hidden
Sie können nicht ändern Sie einfach die ursprüngliche Frage (und ich habe ein Rollback Ihrer änderungen). Sie brauchen beide
@using PagedList;
und @using PagedList.Mvc;
Compiler-Fehlermeldung: CS0246: Der Typ oder namespace-name 'IPagedList' konnte nicht gefunden werden (fehlt eine using-Direktive oder ein Assemblyverweis?).Zeile 40: public class _Page_Views_User_Index_cshtml : System.Web.Mvc.WebViewPage<IPagedList<RecreationalServicesTicketingSystem.Modelle.Benutzer>> {
Ja, es funktioniert ! Danke! Ich dachte, Visual Studio bringt in der using-Anweisungen als Standard, wenn ich Pakete installieren zu dieser Lösung.
InformationsquelleAutor TykiMikk | 2016-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
PageCount
,PageNumber
usw. sind Eigenschaften, die vonIPagedList<T>
, nichtIEnumerable<T>
. Sie benötigen, um änderungen des Modells in der Ansicht zu verwendenIPagedList<T>
, und fügen Sie die entsprechenden using-Anweisungen.IEnumerable<T> ist die Basis-Klasse in der .NET framework für das auflisten der Sammlungen. Es enthält keine Eigenschaften. IPagedList<T> ist eine Schnittstelle, in der
PagedList.Mvc
Montage, erstrecktIEnumerable<T>
zusätzliche Eigenschaften fürPageCount
etc.IPagedList<T>
istIEnumerable<T>
aberIEnumerable<T>
ist nichtIPagedList<T>
Was gibt mit dem entfernen der accept/wählen? Bist du immer noch Probleme?
Ich hatte mehrere Bildschirme auf der gleichen Webseite, so ich entfernt es und Tat es erneut, um sicherzustellen, dass ich von Ihnen positiv bewertet werden. Danke für die Erklärung!
InformationsquelleAutor
Fehlt mit von PagedList und PagedList.Mvc , wie andere sagten Sie.
Was kann ich hinzufügen, eine bessere Beurteilung der Verwendung von namespaces in der Datei Views/Web.Config statt. Dies erlaubt die Verwendung von namespaces PagedList und PagedList.Mvc in allen Ansichten, und den code verkürzen. Beispiel:
Und keine Notwendigkeit mehr zu verwenden mit in jeder Ansicht/cshtml
Dies ist besonders wertvoll, wenn Sie haben ein großes Projekt, es wird den code verkürzen.
InformationsquelleAutor TPAKTOPA