5、添加View。选中NewsController,右键,添加View,会弹出如下图:
在这里,我们选中MvcCompany.Models.news
,在View content
下拉列表中选择List
(因为要实现列表分页)。 <% @ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcCompany.Models.NewList<MvcCompany.Models.news>>" %> < asp : Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> < asp : Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <%using (Html.BeginForm()) <% foreach (var item in Model) <%= Html.Encode(item.ID)%> <%= Html.Encode(item.title)%> <%= Html.Encode(String.Format("{0:g}", item.datetimes))%> <%= Html.Encode(item.contents)%> <% =Html.RouteLink(" 首页" , "UpcomingNews", new { page = 0 })%>| <% if (Model.HasPreviousPage) <% =Html.RouteLink(" 上一页" , "UpcomingNews", new { page = (Model.PageIndex - 1) })%>| <% if (Model.HasNextPage) <% =Html.RouteLink(" 下一页" , "UpcomingNews", new { page = (Model.PageIndex + 1) })%>| <% =Html.RouteLink(" 尾页" , "UpcomingNews", new { page = Model.PageSize - 1 })%> <%=Html.TextBox("pageindex", Model.PageIndex, new {style="width:30px;"})%> 页<input type="submit" value=" 转到" id="sub" /> Html.RouteLink(“
首页”,”UpcomingNews”,new{ page=0})
,是要定位到名称为”UpcomingNews”
的路由,这个路由在Global.asax
中,代码如下: new { controller = "News", action = "Index" }); 路由的名称是”UpcominNews”
,Url
格式是News/page/{page}
,News
和page
是url
的一种格式,后面{page}
是参数,这个参数的名称要与View
中,后半部分的new{page=0}
的page
,以及NewsController
中的方法Index(int? page)
中的page
都必需统一。如果有请求 News/page/2
的url
,实际上请求的是 news?page=2
的页网(路由在ASP.NET MVC
官上有说明)。 首页为中的page=0
,最终会成为NesController
中Index(int? page)
方法,的实参,返回首页数据(及数据库表的前5
条数据)。 上一页,在当前页数PageIndex
的基础上减1
。 下一页,在当前页数PageIndex
的基础上加1
(注:上面的加减1
都不会越界,因为当显示第一页时,“上一页”的超连接就不会显示。当最后一页时,“下一页”的超连接就不会显示) 现在的一个问题是“转到”第几页的实现,我们知道,转到第几页的“几”,得用户输入,所以这里用一个Html.TextBox
来实现,完全代码是 <%=Html.TextBox("pageindex", Model.PageIndex, new {style="width:30px;"})%>
最终会生成一个名称为pageindex
的intup
,类型为Text
,它的值始终为当前的索引页值Model.PageIndex
,其中有一个宽度的属性new {style="width:30px;"}
。 同时还有一个<input type="submit" value="
转到" id="sub" />
用来向后参提交。因为代码中有<form>
表单,所以可以在NewsController
中接收这个提交。 Index(FormCollection formValues)
方法用来处理这个提交。这里会从formValues.GetValue("pageindex").AttemptedValue
中午到客户端用户输入“pageindex
”文本框中的值。从而来完成定向。 至此,我们就用ASP.NET MVC
实现了一个分页功能,相比之下要难ASP.NET
的GridView
自动分页好多。 在这个例子中,我们在Models
层中提供了实体类及news
表的集合类。在Controller
层增加了NewsController
类。在View
层增加了News
的view
,从M-V-C
角度,分别完成了对分页的功能。 本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/200136 ,如需转载请自行联系原作者