C# MVC2 分页总出错,搞的头晕了,请高手帮忙~~~~~~~~
1 Ctroller
public ActionResult Index(int? page)
{
///////不分页 方法
//var dinners = dinnerRepository.FindUpcomingDinners().ToList();
//return View("Index",dinners);
////分页方法
const int pageSize = 10;
var upcomingDinners = dinnerRepository.FindAllDinners();
//var paginatedDinners = upcomingDinners.Skip((page??0)*pageSize).Take(pageSize).ToList();
var paginatedDinners = new PagintedList<Dinner>(upcomingDinners, page ?? 0, pageSize);
return View(paginatedDinners);
}
2 Model
public class PagintedList<T> : List<T>
{
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalCount { get; private set; }
public int TotalPage { get; private set; }
/// <summary>
///
/// </summary>
/// <param name="source"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
public PagintedList(IQueryable<T> source, int pageIndex, int pageSize)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalCount = source.Count();
TotalPage = (int)Math.Ceiling(TotalCount / (double)PageSize);
this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
}
/// <summary>
///
/// </summary>
public bool HasPreviousPage
{
get
{
return (PageIndex + 1 < TotalPage);
}
}
}
3 view
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Helpers.PaginatedList<Dinner>>" %>
---
<ul>
<%foreach (var dinner in Model )
{ %>
<li>
<%=Html.ActionLink(dinner.Title, "Details", new { id=dinner.DinnerID })%>
on
<!--<%=Html.Encode(dinner.EventDate.ToString())%> -->
<%=Html.ActionLink(dinner.EventDate.ToString(),"Details" ,new { id=dinner.DinnerID})%>
@
<!--<%=Html.Encode(dinner.HostedBy )%> -->
<%=Html.ActionLink(dinner.HostedBy, "Details", new { id=dinner.DinnerID })%>
</li>
<%} %>
</ul>
<p>
<!-- <%: Html.ActionLink("Create New", "Create") %> -->
%>
</p>
<% if (Model.HasPreviousPage)
{ %>
<%=Html.RouteLink("<<<", "UpcomingDinners", new { page = (Model.PageIndex - 1) })%>
<%} %>
<%if (Model.HasNextPage)
{ %>
<%=Html.RouteLink(">>>", "UpcomingDinners", new { page = (Model.PageIndex + 1) })%>
<%} %>>
问题:
编译能通过 但是 跳转页面 /dinner/Index/1 总是提示
public class views_dinners_index_aspx : System.Web.Mvc.ViewPage<NerdDinner.Helpers.PaginatedList<Dinner>>, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
搞不明白,奇怪了 ,请高手帮忙