Pregunta

Tengo una vista que toma una PaginatedList (como en la muestra de Nerd Dinner). La página funciona según lo previsto. Ahora he agregado una vista parcial que toma la misma PaginatedList y llamo a RnederPartial dentro de la primera vista. ASP.NET lanza una excepción que parece que no puedo resolver.

Código 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);
        }
    }
}

Controlador:

[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);
}

Parte superior de la vista de índice:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>

Llamo a la vista parcial en la vista de índice de la siguiente manera:

<% Html.RenderPartial("Workstations", Model); %>

Vista parcial de la parte superior de las estaciones de trabajo:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>

El error que recibo es:

c: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Archivos temporales ASP.NET \ root \ d2889d23 \ c6192b3e \ App_Web_workstations.ascx.a8d08dba.tgrd74s0.0.cs (156): error CS0030: no se puede convertir escriba 'ASP.views_home_workstations_ascx' a 'System.Web.Mvc.ViewUserControl'

Si alguien sabe por qué recibo este error, lo agradecería enormemente.

¡Gracias!

¿Fue útil?

Solución

La parte superior de la vista parcial de sus estaciones de trabajo debería verse así:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ITILDatabase.Helpers.PaginatedList<ITILDatabase.Models.Workstation>>" %>

Cambiar ViewPage a ViewUserControl

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top