上篇过后,被评为没有什么技术含量了,但我觉得这并没有什么问题,因为文章不一定会让所有人群受益,文章或适于新手,或适于熟手。 但凡是对人有所启发,我觉得写文章有值得。
而且我觉得这一系列主要是在开发中遇到的问题及解决方法,有容易想到的,有经过几次 开发迭代才形成的。还是那句话,这些未必是一些高效的技巧,但是的确是能解决问题,也未必有什么高深的原理,只是我觉得值得分享。
3.Pager
3.1需求及模拟代码
需求,假设我们有个列表,有分页功能,我们可能需要一个页码列表,如
我们模拟写一下Action:
1: public ActionResult Index(int? p)
2: {
3: if (!p.HasValue) p = 1;//如果未对p 传值就是第1页
4: var list = new List<int>();//生成一个模拟列表
5: for (var i = 0; i < 10;i++ )
6: {
7: list.Add(p.Value);//是第几页就向中填充几个这个页码的数
8: }
9: return View(list);//强型传递给View
10: }
View中我写以下显示方式:
1: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<List<int>>" %>
2:
3: <asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
4: Pager for List
5: </asp:Content>
6:
7: <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
8: <div>
9: <ul>
10: <%foreach (int i in Model){//显示这个列表%>
11: <li><%=i %></li>
12: <%} %>
13: </ul>
14: </div>
15: <!--将在这里显示分页的部分-->
16: </asp:Content>
下面是运行后 的结果:
第一页URL类似/Home/Index?p=1
第二页URL类似/Home/Index?p=2
其它页面以此类推