asp.net MVC1.0 分页问题
我在Controller文件里面建一个FirstControler:
--这是我新建的ADO.NET 实体
NorthwindEntities1 db = new NorthwindEntities1();
public ActionResult f(int? page)
{
const int pageSize = 10;
var upcomingOrders = FindUpcomingOrders();
var paginatedOrders = new PaginatedList<Orders>(upcomingOrders, page ?? 0, pageSize);
return View(paginatedOrders);
}
public IQueryable<Orders> FindUpcomingOrders()
{
return from order in db.Orders
where order.OrderDate < DateTime.Now
orderby order.OrderDate
select order;
}
接着又建了一个类,是在同一个命名空间的:
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;
PageIndex = 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); }
}
}
接着,我又在View文件里面新建了一个f.aspx
把继承改为
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MVC_First.Controllers.PaginatedList<Orders>>%>"
<table style="border:solid 1px #cccccc" width="100%">
<%
foreach (var m in ViewData.Model)
{
%>
<tr><td><%=m.OrderID %></td></tr>
<%
}
%>
</table>
<% if (Model.HasPreviousPage)//这个是PaginatedList的属性
{ %>
<%= Html.RouteLink("上一页","UpcomingDinners",new { page=(Model.PageIndex-1) }) %>
<% } %>
<% if (Model.HasNextPage)
{ %>
<%= Html.RouteLink("下一页","UpcomingDinners",new { page = (Model.PageIndex + 1) })%>
<% } %>
运行的时候,它就报要Orders没有using.
然后,我就把System.Web.Mvc.ViewPage<MVC_First.Controllers.PaginatedList<Orders>>%>换成
System.Web.Mvc.ViewPage<List<MVC_First.Models.Orders>>
它又报认不到HasPreviousPage属性,也是没有using
天啊.该怎么弄呀