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来无刷新操作。

 

posted @ 2015-04-01 18:26 LABELNET 阅读(...) 评论(...) 编辑 收藏