J'ai une vue qui prend une PaginedList (comme dans l'exemple Nerd Dinner). La page fonctionne comme prévu. Maintenant, j'ai ajouté une vue partielle qui prend la même PaginedList et j'appelle RnederPartial dans la première vue. ASP.NET génère une exception que je n'arrive pas à résoudre.Liste des types personnalisés ASP.NET MVC en vue partielle
code PaginatedList:
public class PaginatedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPages { get; private set; }
public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPages = (int)Math.Ceiling(TotalCount/(double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
public bool HasPreviousPage
{
get
{
return (PageIndex > 0);
}
}
public bool HasNextPage
{
get
{
return (PageIndex + 1 < TotalPages);
}
}
}
Controller:
[Authorize]
public ActionResult Index(int? page)
{
const int pageSize = 10;
var workstations = itilRepository.FindAllWorkstations();
var paginatedWorkstations = new PaginatedList<Workstation>(workstations, page ?? 0, pageSize);
return View("Index", paginatedWorkstations);
}
Haut de Index Vue:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>
J'appeler la vue partielle de la vue Index comme suit:
<% Html.RenderPartial("Workstations", Model); %>
Haut de Postes de travail Vue partielle:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>
L'erreur que je reçois est:
c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ d2889d23 \ c6192b3e \ App_Web_workstations.ascx.a8d08dba.tgrd74s0.0.cs (156): erreur CS0030: Impossible de convertir le type 'ASP.views_home_workstations_ascx' à 'System.Web.Mvc.ViewUserControl'
Si quelqu'un sait pourquoi je reçois cette erreur je l'apprécierais grandement.
Merci!
Je voulais juste dire que ce n'est pas une bonne idée de voler ce code PaginatedList 1: 1. Il exige tous les éléments à extraire de la base de données. –