0

ここの例に従っています: http://nerddinnerbook.s3.amazonaws.com/Part8.htmで、ページャーをアプリに追加しようとしています。

私のコントローラーには次のものがあります:

    // GET: /Offer/
    // GET: /Offer/Page/2

    public ActionResult Index(int? page)
    {
        const int pageSize = 10;
        var items = db.Customers.OrderByDescending(x => x.OfferCreatedOn);
        var paginatedItems = new PaginatedList<Customer>(items, page ?? 0, pageSize);
        return View(paginatedItems);
    }

このヘルパーを含むヘルパーフォルダーがあります:

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

私が今立ち往生しているのは、ビューの一番上に何を置くかです。

次を入力すると、次の@model PaginatedList<FGBS.Models.Customer>エラーメッセージが表示されます。

PaginatedList には、「HasPreviousPage」(ヘルパーにある) の定義と、Customer モデルにある他の項目 (ビューにも渡す必要があります) の定義が含まれていません。

ビューの最初の行を次のように変更する@model FGBS.Helpers.PaginatedList<Customer>と、次の行が強調表示されて、型または名前空間 'Customer' が見つかりません:

public class _Page_Views_offer_index_cshtml : System.Web.Mvc.WebViewPage>

洞察をありがとう、

マーク

4

1 に答える 1

1

どうですか

@model FGBS.Helpers.PaginatedList<FGBS.Models.Customer>
于 2013-07-16T15:27:32.810 に答える