Asp.net MVC 的一些总结(一)——分页
背景介绍,这篇文章是的内容里,出现的back是 EF 对象(大家都懂!^0^)
这里解释下,ActionResult 大家都懂,返回给视图了。而传的参数:int? page ,经过楼主的思考,还是用了((*^__^*) 第一次用,之前只知道有这个东西)
但是这里遇见个问题,请大家指教了:当使用三元表达式的时候,就报错了,无法获得默认值。代码:Int32 n=page.HasValue?1:page.Value;这么久得不到值呢!
后就只能用if语句了!
当然当你看这篇文章的时候,你已经会了asp.net mvc了!下面的Linq语句就不解释了。Skip是跳过多少,Take是取多少条。当然还有下面的Lamda表达式也就不解释了。
业务说明:传进来 页数page ,每次获得15条数据 ,取得总条数和总页数和:Math.Ceiling 向上取整。后台代码如下:
1 //在线信息
2 public ActionResult AdminThing(int? page)
3 {
4 //获得数据
5 Int32 n = 1;
6 if (page.HasValue)
7 { n = page.Value; }
8 var querys = (from t in back.things orderby t.thingid where t.label == 1 select t).Skip(15 * (n - 1)).Take(15);
9 ViewBag.AdminThing = querys;
10
11 //获得页数
12 var count = back.things.Count(t => t.label == 1);
13 //取得总页数
14 int Allpage = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(count / 15.0)));
15 ViewBag.Allpage = Allpage;
16
17
18 return View();
19 }
视图页面:
这里的视图是cshtml ,布局就不说了,可以看一些BootStrap的分页,都是很漂亮的。这里用的是a标签链接地址为:刚才的Action加不同的参数来请求数据。
<!--分页--> <div style="float:right;"> <ul class="pagination"> @{ int allpage = ViewBag.Allpage; <li><a href="AdminThing?page=1">«</a></li> for (int i = 1; i <= allpage; i++) { <li><a href="AdminThing?page=@i">@i</a></li> } <li><a href="AdminThing?page=@allpage">»</a></li> } </ul> </div>
总结:当有怎样的需求的时候,就怎样求得。后期开发将转型 Jquery-ajax来无刷新操作。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。