我正在构建一个服务台票务系统(我是一个 C# 新手 - 从 NerdDinner 得到了很多指导),我希望使用某种分页库来帮助查看。我找到了 MvcContrib.Pagination 并且让它可以用于视图。我的视图不使用 MvcContrib.Grid 因为它是自定义的。
我的视图的缩小版本列表.aspx :
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyProject.Areas.HelpDesk.Models.hd_Ticket>>" %>
<%@ Import Namespace="MyProject.Areas.HelpDesk.Controllers" %>
<%@ Import Namespace="MvcContrib.Pagination" %>
<h2>Help Desk Tickets (showing <%= Model.Count() %> of <%= ViewData["totalItems"] %>)</h2>
<% foreach (var item in Model) { %>
<h3><%= Html.Encode(item.Subject)%></h3>
<% } %>
<p><%= Html.Pager((IPagination)Model)%></p>
我的控制器(部分)TicketController.cs :
TicketRepository ticketRepository = new TicketRepository();
public ActionResult List(int? page, int? pageSize)
{
IPagination<hd_Ticket> tickets = null;
int dPageSize = 50;
int totalItems;
tickets = ticketRepository.GetTickets().ToList().AsPagination(page ?? 1, pageSize ?? dPageSize);
ViewData["totalItems"] = tickets.TotalItems;
return View("List", tickets);
}
我正在使用存储库模式,它将结果作为 IQueryable 返回。这是其中的一部分TicketRepository.cs file:
public class TicketRepository
{
private HelpDeskDataContext db = new HelpDeskDataContext();
public IQueryable<hd_Ticket> FindAllTickets()
{
return from ticket in db.hd_Tickets
orderby ticket.CreatedDate descending
select ticket;
}
}
所有这些对某些人来说可能微不足道,但如果像我这样的人正在尝试学习 C# 和 ASP.NET MVC 和分页,那么这可能很有用。我建议新手学习 NerdDinner 教程:
http://nerddinnerbook.s3.amazonaws.com/Intro.htm http://nerddinnerbook.s3.amazonaws.com/Intro.htm
:)