6

PaginatedListを取得するビューがあります(NerdDinnerサンプルのように)。ページは意図したとおりに機能します。ここで、同じPaginatedListを受け取る部分ビューを追加し、最初のビュー内でRnederPartialを呼び出します。ASP.NETは、解決できないように見える例外をスローします。

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

コントローラ:

[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 \ Temporary ASP.NET Files \ root \ d2889d23 \ c6192b3e \ App_Web_workstations.ascx.a8d08dba.tgrd74s0.0.cs(156):エラーCS0030:タイプ'ASPを変換できません.views_home_workstations_ascx'から'System.Web.Mvc.ViewUserControl '

私がこのエラーを受け取る理由を誰かが知っているなら、私はそれを大いに感謝します。

ありがとう!

4

1 に答える 1

24

ワークステーションのパーシャルビューの上部は次のようになります。

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

ViewPageをViewUserControlに変更します

于 2009-06-22T16:15:23.840 に答える