ASP.NET Список пользовательских типов MVC в частичном представлении

StackOverflow https://stackoverflow.com/questions/1028047

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть представление, которое принимает PaginatedList (как в примере Nerd Dinner).Страница работает так, как задумано.Теперь я добавил частичное представление, которое принимает тот же PaginatedList, и я вызываю RnederPartial внутри первого представления.ASP.NET выдает исключение, которое я, похоже, не могу разрешить.

Код списка разбитых на страницы:

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

Контроллер:

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

Вид сверху индекса:

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

Я вызываю частичное представление в индексном представлении следующим образом:

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

Частичный вид сверху рабочих станций:

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

Ошибка, которую я получаю, это:

c:\Windows\Microsoft.NET\Framework\v2.0.50727 emporary ASP.NET Файлы oot\d2889d23\c6192b3e\App_Web_workstations.ascx.a8d08dba.tgrd74s0.0.cs(156):ошибка CS0030:Не удается преобразовать тип 'ASP.views_home_workstations_ascx' в 'System.Web.Mvc.ViewUserControl'

Если кто-нибудь знает, почему я получаю эту ошибку, я был бы очень признателен.

Спасибо!

Это было полезно?

Решение

Верхняя часть частичного представления ваших рабочих станций должна выглядеть следующим образом:

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

Измените ViewPage на ViewUserControl

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top