精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解ASP.NET MVC分頁的實現方法

開發 后端
這里將詳細介紹ASP.NET MVC分頁的實現方法,一般來說分頁的實現只能靠程序員自己來設計,希望本文對大家有所幫助。

ASP.NET MVC分頁已經有很多文章講述過,這里我們將講述的ASP.NET MVC分頁的實現,需要靠自己設計,這就需要了解分頁的原理,以及相關數據庫的操作。51CTO編輯推薦《ASP.NET MVC框架視頻教程

在ASP.NET中,GridView控件本身就帶有分頁的功能,只要把當前頁面的索引值賦給GridView的PageIndex就可以實現了分頁,至于數據怎么分頁,全都由GridView封裝起來了。

ASP.NET MVC分頁的實現就只能靠自己來設計了。首先來說一下分頁的原理。現在有一個張news表,中間有很多信息,我們假設一頁顯示5條記錄,這樣,頁面數量=總記錄數/5;這里,如果出現小數,得進位取整。如比總記錄和數為51,那么分的頁面數量是11,最后一頁只有一條記錄。好,有這樣一個思路后,現在就來做ASP.NET MVC中的分頁了。

1、 數據庫和表

創建一個Data_Company的數據庫,建一張news表,表結構如下圖:

創建一個Data_Company的數據庫

ID是主鍵,并助是自動增長列。

2、 現在,我們用O/R Designer來創建news表的LINQ To SQL的實體類。

創建一個名為MvcCompany的ASP.NET MVC Web Application項目,然后選中Models,右鍵,“添加”,“新建項”,選中C#中的“數據”,如下圖:

用O/R Designer來創建news表

選擇“LINQ to SQL類”,名稱設為“CompanyData.dbml”,然后“添加”。

打開“服務器資源管理器”,創建連接,展開表,找到news表,拖到CompanyData.dbml的左邊表視圖區(注:.dbml視圖左邊是SQL表和SQL視圖區,右邊是SQL存儲過程和SQL函數區),效果如下圖:

服務器資源管理器

在“解決方案資源管理器”下的,“Models”多了三個文件,CompanyData.dbml,展開它,會有CompanyData.dbml.layout和CompanyData.designer.cs,前者是CompanyData.dbml視圖的一些信息(比如news表在的坐標等信息),后者是news實體類及Data_Company數據庫的類,在數據庫類中聚合了news實體類。

3、 添加news列表類。因為一個news實體類,一次只能表示一條記錄,如果呈現一個news表中的數據,最好定義一個集合類來存臨時來存放news記錄的集合。

類的實現如下:

  1. using System;  
  2.  using System.Collections.Generic;  
  3.  using System.Linq;  
  4.  using System.Web;  
  5.  namespace MvcCompany.Models  
  6. {  
  7. public class NewList<T> : List<T> 
  8. {  
  9. /**//// <summary> 
  10. /// 頁面索引值  
  11. /// </summary> 
  12. public int PageIndex { get; private set; }  
  13. /**//// <summary> 
  14. /// 每頁記錄的數量  
  15. /// </summary> 
  16. public int PageSize { get; private set; }  
  17. /**//// <summary> 
  18. /// 記錄總條數  
  19. /// </summary> 
  20. public int TotalCount { get; private set; }  
  21. /**//// <summary> 
  22. /// 共有的頁數和  
  23. /// </summary> 
  24. public int TotalPages { get; private set; }  
  25. public NewList(IQueryable<T> source, int pageIndex, int pageSize)  
  26. {  
  27. PageIndex = pageIndex;  
  28. PageSize = pageSize;  
  29. TotalCount = source.Count();  
  30. // 進上去取整( 總記錄條數/一面記錄的條數)  
  31. TotalPages = (int)Math.Ceiling(TotalCount / (double)pageSize);  
  32. this.AddRange(source.Skip(pageIndex * pageSize).Take(PageSize));  
  33. }  
  34. /**//// <summary> 
  35. /// 是否存在前續頁  
  36. /// </summary> 
  37. public bool HasPreviousPage  
  38. {  
  39. get { return (PageIndex > 0); }  
  40. }  
  41. /**//// <summary> 
  42. /// 是否存在后續頁  
  43. /// </summary> 
  44. public bool HasNextPage  
  45. {  
  46. get { return (PageIndex + 1 < AllPages); }  
  47. }  
  48. }} 

這里,我們實現了一個泛型的集合列表NewList(當然,這里的本質上可以當其他實體類的集合列表),在這個類中間,有四個字段,訪問修飾符都是public的,分另為:

PageIndex:當前頁面的索引值

PageSize:每個頁面的記錄的條數

AllCount:記錄的總條數

AllPages:共有的頁面總數

在NewList 構造函數中,有如下代碼:

  1. public NewList(IQueryable<T> list, int pageIndex, int pageSize)  
  2. {  
  3. PageIndex = pageIndex;   
  4.  PageSize = pageSize;  
  5. AllCount = source.Count();   
  6. AllPages = (int)Math.Ceiling(AllCount / (double)pageSize);  
  7. this.AddRange(list.Skip(PageIndex * PageSize).Take(PageSize));  

構造函的參數有三個,一個是list,就是實體類的一個集合,還有就是頁面索引值和每個頁面的記錄條數。

第1、2代碼很容易理角,第3行代碼是得到列表的總記錄條數,第4行代碼,就完成了我們在開始時分析的分頁實現的公式:頁面數量=總記錄數/每頁記錄數,其中Math.Ceiling就是把小數部分進到整數的函數。

最關鍵的是第5行代碼,首先看Skip(PageIndex*PageSize),頁面索引值乘上每頁記錄數,得到是當前頁面以前的所有記錄數,Skip是跳過這些記錄,而得到后面的所有記錄,Take(PageSize)是得到PageSize條數的記錄,比如,我們想要第三頁的記錄,這個頁面的索引值為2(因為索引值從0開始)PageIndex=2,每頁顯示5條記錄,PageSize=5,就是要跳過list中的前10條記錄,然后再取前5條記錄,即取list中的第11條到第15條記錄,也就是第3頁的記錄了。

在這里,微軟提供了Skip和Tabke函數,讓我們做起分頁來,得心應手。

接下來是this.AddRange()函數,可以把批量的數據放到當前集合中(因為NewList本身就是一個集合)。

代碼的后半部分是兩個屬性:

  1. public bool HasPreviousPage  
  2. {  
  3. get { return (PageIndex > 0); }  
  4. }  
  5. public bool HasNextPage  
  6. {  
  7. get { return (PageIndex + 1 < AllPages); }  

這兩個屬性是為頁面顯示“上一頁”和“下一頁”,因為當我們顯示第一頁的時候,“上一頁”是不需要顯示的,如果最后一頁,是沒有“下一頁“的,所以在這里定義了兩個屬性,來判斷是否有上一頁和下一頁。

先看HasPreviousPage屬性,如果PageIndex是大于0的,說明不是在第一頁,所以就反回true,如果小于等于0(在這里小于0是沒有意思義的,因為頁面的索引值最小是0),說明是第一頁,所以返回是false。

再看HasNextPage屬性,因為頁面索引值的最大數,與頁面的最大數差1(索引從0開始的原因),所以當PageIndex+1小于AllPages時,說沒有沒到最后一頁,返回值是true,如果PageIndex+1大于等于AllPages時(大于也沒有意義),說明是最后一頁,返回值為false。

4、 添加NewsController。選中Controller,右鍵添加一個NewsController 的Controller。

代碼如下:

  1. using System;  
  2.  using System.Collections.Generic;  
  3.  using System.Linq;  
  4.  using System.Web;  
  5. using System.Web.Mvc;  
  6. using System.Web.Mvc.Ajax;  
  7. using MvcCompany.Models;  
  8. using System.Configuration;  
  9. namespace MvcCompany.Controllers  
  10. {  
  11. public class NewsController : Controller  
  12. {  
  13. DataClassesDataContext DCDC;  
  14. int pageSize;  
  15. public NewsController()  
  16. {  
  17. DCDC = new DataClassesDataContext();  
  18. pageSize = Convert.ToInt32(ConfigurationManager.AppSettings["pagesize"]); //每個頁面的數量存放在web.config的appsetting里的pagesize節中,值為5  
  19. }  
  20. public ActionResult Index(int? page)  
  21. {  
  22. var NewsList = DCDC.news.Select(newss=>newss);  
  23. var paginatedNews = new NewList<news>(NewsList, page ?? 0, pageSize); //實現分頁功能  
  24. return View(paginatedNews);  
  25. }  
  26. [AcceptVerbs(HttpVerbs.Post)]  
  27. public ActionResult Index(FormCollection formValues)  
  28. {  
  29. int? index = int.Parse(formValues.GetValue("pageindex").AttemptedValue);  
  30. int page = index ??0 ;  
  31. var NewsList = DCDC.news.Select(newss => newss);  
  32. var paginatedNews = new NewList<news>(NewsList, page, pageSize); //實現分頁功能  
  33. return View(paginatedNews);  
  34. }  
  35. }  
  36. }  

關于兩個Index重載,我們在設計完Views再討論。

5、 添加View。選中NewsController,右鍵,添加View,會彈出如下圖:

添加View

在這里,我們選中MvcCompany.Models.news,在View content下拉列表中選擇List(因為要實現列表分頁)。

Index.aspx頁面代碼如下:

  1. <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcCompany.Models.NewList<MvcCompany.Models.news>>" %> 
  2. <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
  3. 新聞  
  4. </asp:Content> 
  5. <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
  6. <!--前半部分--> 
  7. <%using (Html.BeginForm())  
  8. { %> 
  9. <h2> 
  10. 新聞列表</h2> 
  11. <table> 
  12. <tr> 
  13. <th> 
  14. 編號  
  15. </th> 
  16. <th> 
  17. 題目  
  18. </th> 
  19. <th> 
  20. 時間  
  21. </th> 
  22. <th> 
  23. 內容  
  24. </th> 
  25. </tr> 
  26. <% foreach (var item in Model)  
  27. { %> 
  28. <tr> 
  29. <td> 
  30. <%= Html.Encode(item.ID)%> 
  31. </td> 
  32. <td> 
  33. <%= Html.Encode(item.title)%> 
  34. </td> 
  35. <td> 
  36. <%= Html.Encode(String.Format("{0:g}", item.datetimes))%> 
  37. </td> 
  38. <td> 
  39. <%= Html.Encode(item.contents)%> 
  40. </td> 
  41. </tr> 
  42. <% } %> 
  43. </table> 
  44. <hr /> 
  45. <!--后半部分--> 
  46. <% =Html.RouteLink("首頁", "UpcomingNews", new { page = 0 })%>|  
  47. <% if (Model.HasPreviousPage)  
  48. {%> 
  49. <% =Html.RouteLink("上一頁", "UpcomingNews", new { page = (Model.PageIndex - 1) })%>|  
  50. <%} %> 
  51. <% if (Model.HasNextPage)  
  52. {%> 
  53. <% =Html.RouteLink("下一頁", "UpcomingNews", new { page = (Model.PageIndex + 1) })%>|  
  54. <%} %> 
  55. <% =Html.RouteLink("尾頁", "UpcomingNews", new { page = Model.PageSize - 1 })%>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
  56. 第  
  57. <%=Html.TextBox("pageindex", Model.PageIndex, new {style="width:30px;"})%><input 
  58. type="submit" value="轉到" id="sub" /> 
  59. <%} %> 
  60. </asp:Content> 

代碼的前半部分,很好理解。

代碼的后半部分,我們來分析一下,首頁,是采用

Html.RouteLink(“首頁”,”UpcomingNews”,new{ page=0}),是要定位到名稱為”UpcomingNews”的路由,這個路由在Global.asax中,代碼如下:

  1. routes.MapRoute(  
  2. "UpcomingNews",  
  3. "News/page/{page}",  
  4. 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來實現,完全代碼是

  1. <%=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角度,分別完成了對分頁的功能。

【編輯推薦】

  1. ASP.NET靜態頁面生成及分頁的實現
  2. ASP.NET GridView分頁與雙向排序案例
  3. ASP.NET DataGrid自定義分頁源程序
  4. ASP.NET MVC分頁控件的實現
  5. DetailsView分頁顯示數據
責任編輯:彭凡 來源: 51CTO博客
相關推薦

2010-03-19 09:17:16

ASP.NET MVC

2009-07-28 14:47:18

ASP.NET MVC

2009-07-22 16:02:39

ASP.NET MVCPagedList

2010-01-26 13:15:42

ASP.NET MVC

2009-07-22 09:11:02

Action方法ASP.NET MVC

2009-07-20 15:44:32

ASP.NET MVC

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2009-09-18 10:20:26

PRG數據驗證

2010-08-02 09:18:39

ASP.NET MVC

2009-12-01 09:30:34

ASP.NET MVC

2009-07-31 12:43:59

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-22 09:36:54

使用UpdataModASP.NET MVC

2009-11-06 09:23:41

ASP.NET高效分頁

2009-06-01 10:23:31

asp.net mvcasp.net mvc.net mvc框架

2010-02-03 09:50:58

ASP.NET MVC

2011-04-14 09:19:22

ASP.NET MVC

2012-04-23 15:10:18

ASP.NET

2009-09-11 09:18:17

ASP.NET MVC

2010-10-12 09:52:02

ASP.NET MVC
點贊
收藏

51CTO技術棧公眾號

日韩欧美中文字幕公布| 亚洲视频免费在线| 欧美在线精品免播放器视频| 魔女鞋交玉足榨精调教| 福利一区二区免费视频| 亚洲影视在线播放| 日韩精品欧美专区| www日本高清| 日韩极品在线观看| 色综合五月天导航| 谁有免费的黄色网址| 精品成人18| 日韩欧美一区二区在线| 日本道在线视频| 黄色av免费在线看| 国产v综合v亚洲欧| 国产精品自拍网| 国产在线观看你懂的| 日韩欧美二区| 亚洲欧美日韩国产精品| 久久精品无码一区二区三区毛片| 依依综合在线| 亚洲一区二区三区自拍| 亚洲蜜桃av| 青青久在线视频| 国产成人h网站| 国产精品日本精品| 日韩色图在线观看| 精品二区久久| 久热精品在线视频| 国产在线免费av| 图片婷婷一区| 亚洲国产精久久久久久 | 久久精品久久99精品久久| 欧美精品久久久久a| 26uuu成人网| 日韩欧美在线中字| 亚洲一区二区久久久| 中文字幕天堂网| 伊色综合久久之综合久久| 欧美精品少妇一区二区三区| 成人在线观看a| 麻豆视频在线看| 亚洲在线中文字幕| 亚洲精品国产suv一区88| 欧美日韩xx| 国产精品三级电影| 亚洲国产精品久久久久婷婷老年| 欧美捆绑视频| 久久综合九色综合97_久久久| 国产伦精品一区二区三区高清| 91影院在线播放| 美女精品一区二区| 国产精品色悠悠| 91丨九色丨海角社区| 日韩高清一区在线| 国产精品1区2区在线观看| 国产又粗又猛又爽又| 久久综合亚州| 国产精品日韩专区| 一本色道久久综合精品婷婷| 久久91精品久久久久久秒播| 91美女片黄在线观| 99国产精品久久久久99打野战| 国精品**一区二区三区在线蜜桃| 亚洲精品女av网站| 不卡视频在线播放| 99久久婷婷国产综合精品 | 日韩精品四区| 美女撒尿一区二区三区| 精品欧美一区二区久久久久| 欧美另类综合| 欧美激情三级免费| 日韩成人免费在线观看| 亚洲免费中文| 国产精品亚洲自拍| 国产av无码专区亚洲av麻豆| 成人毛片老司机大片| 你懂的视频在线一区二区| 你懂得在线网址| 国产精品剧情在线亚洲| 国产传媒久久久| 偷拍中文亚洲欧美动漫| 欧美视频一区二区三区| 亚洲少妇中文字幕| 亚洲精品蜜桃乱晃| 菠萝蜜影院一区二区免费| 欧美成欧美va| 久久狠狠一本精品综合网| 国产日韩av在线| 乱色精品无码一区二区国产盗| 久久综合九色综合97婷婷| 一区一区视频| 男女在线视频| 欧美艳星brazzers| 国产免费a级片| 精品久久久久久久久久久aⅴ| 中文字幕亚洲国产| 精品午夜福利视频| 秋霞午夜av一区二区三区| 99热在线播放| av男人的天堂在线| 亚洲电影一区二区| 日韩在线一区视频| 欧美色资源站| 久久成人精品视频| 中文字幕在线观看视频免费| 成人性视频免费网站| 亚洲高清在线播放| 日韩精品美女| 精品不卡在线视频| 午夜激情福利电影| 久久欧美肥婆一二区| 成人国产一区二区| 欧美成人视屏| 91激情在线视频| 国产精品伦子伦| 艳女tv在线观看国产一区| 国产精品7m视频| 少妇人妻偷人精品一区二区| 亚洲视频免费在线观看| 91热这里只有精品| 性人久久久久| 久久久噜噜噜久久| 国产999久久久| 中文字幕在线一区二区三区| av免费网站观看| 超碰精品在线观看| 欧美xxxx综合视频| 国产乱码久久久| 久久亚洲一区二区三区明星换脸| 欧美久久久久久久久久久久久久| 亚洲精品毛片| 最近中文字幕日韩精品| 中文字幕一区二区人妻视频| 久久一区二区视频| 久久9精品区-无套内射无码| 六月丁香久久丫| 久久久久这里只有精品| 成人小说亚洲一区二区三区 | 国产成年人免费视频| 激情亚洲综合在线| 宅男一区二区三区| 亚洲爽爆av| 久久精品青青大伊人av| ,亚洲人成毛片在线播放| 欧美激情综合五月色丁香小说| 麻豆av免费在线| 视频国产一区| 国产精品久久久久久五月尺| a√资源在线| 欧美精品在线观看播放| 中文字幕无码日韩专区免费| 精品亚洲免费视频| 免费的av在线| 66精品视频在线观看| 久久久久久国产| 色综合免费视频| 欧美午夜久久久| 在线视频第一页| 麻豆精品视频在线| 三年中国中文在线观看免费播放 | 久久这里有精品15一区二区三区| 欧美日韩一区二区三| 免费观看成人性生生活片| 亚洲性猛交xxxxwww| 日韩久久久久久久久久| 国产精品进线69影院| 婷婷激情综合五月天| 欧美先锋影音| 欧美精品欧美精品| 日韩欧乱色一区二区三区在线 | 亚洲激情中文字幕| 亚洲 欧美 中文字幕| 国产精品天干天干在观线| 激情文学亚洲色图| 激情欧美日韩| 欧美日韩在线不卡一区| 香蕉久久一区| 91黄色8090| 成年人视频网站在线| 欧美一区二区三区视频免费播放| 国产奶水涨喷在线播放| 久久精品视频网| 91香蕉视频免费看| 亚洲欧美日本视频在线观看| 中文字幕一区二区三区乱码 | 亚洲第一av在线| 午夜精品久久久久久久蜜桃| 亚洲欧美日韩小说| 国产精品1000部啪视频| 国产在线不卡一卡二卡三卡四卡| 国产女主播自拍| 成人国产精品一级毛片视频| 国产成人精品自拍| 亚洲天堂1区| 欧美激情久久久久| 日本a级在线| 日韩高清人体午夜| 国产v片在线观看| 在线中文字幕一区| 国产精品自拍视频一区| 欧美激情在线一区二区三区| a级片在线观看视频| 精品亚洲欧美一区| 国产免费人做人爱午夜视频| 午夜日韩av| 亚洲精品二区| 亚洲国产欧美日韩在线观看第一区| 亚洲综合av影视| 国产香蕉久久| 欧美在线免费视频| www视频在线观看| 久久成人人人人精品欧| 免费在线视频一级不卡| 亚洲成人黄色在线观看| 99久久精品无免国产免费| 欧美最猛性xxxxx直播| 在线观看 中文字幕| 亚洲黄色在线视频| 国产免费嫩草影院| 国产亚洲成av人在线观看导航| 亚洲精品乱码久久久久久蜜桃欧美| 麻豆精品在线视频| 一区二区在线播放视频| 亚洲女人av| 91专区在线观看| 韩国亚洲精品| 国产高清不卡无码视频| 91tv官网精品成人亚洲| 亚洲日本一区二区三区在线不卡| 国产精品一区二区av交换| 精品久久久久久一区| 日韩影片在线观看| 亚洲综合日韩在线| 97久久精品一区二区三区的观看方式 | 久久这里只有精品18| 久久国产精品成人免费观看的软件| 国语精品免费视频| 精品亚洲自拍| 久久精品日韩| 欧美禁忌电影网| 欧洲精品久久| 精品久久久久久久久久久下田| 青青草原成人| 国产亚洲一区二区三区啪| 日韩三级在线播放| 日韩激情在线| 中文精品视频一区二区在线观看| 99久久精品网站| 宅男av一区二区三区| 2023国产精品久久久精品双| 青青草免费在线视频观看| 午夜国产一区| 全黄性性激高免费视频| 99香蕉国产精品偷在线观看| 俄罗斯av网站| 视频一区在线播放| 依人在线免费视频| 国产一区二三区好的| 中文字幕永久免费| 99re热这里只有精品免费视频 | 午夜精品久久久久久久99热黄桃| 日韩欧美一级二级三级久久久| 亚洲精华国产精华精华液网站| 精品国产一区二区在线观看| 涩爱av在线播放一区二区| 亚洲欧美日韩一区二区三区在线| av播放在线| 色综合久久久久久中文网| 激情黄产视频在线免费观看| 国产成人亚洲综合91精品| 亚洲精品伦理| 国产精品露出视频| 国产99精品一区| 中文网丁香综合网| 在线欧美亚洲| 久久久精品三级| 国产精品一品二品| 国产精品三级在线观看无码| 亚洲欧洲成人自拍| 天天综合网入口| 欧美日韩亚洲另类| 日本黄色不卡视频| 在线播放国产精品| 麻豆福利在线观看| 国产黑人绿帽在线第一区| 91精品视频一区二区| 国严精品久久久久久亚洲影视| 成人短片线上看| 亚洲国产精品成人天堂| 日韩成人午夜电影| 亚洲国产精品狼友在线观看| 欧美高清在线一区| 亚洲国产精品成人无久久精品| 在线区一区二视频| 亚洲爱情岛论坛永久| 国产亚洲精品久久久久久| 青草在线视频在线观看| 国产精品三级美女白浆呻吟 | 亚洲高清视频一区二区| 在线观看不卡| 成人av毛片在线观看| 92国产精品观看| 青青草精品在线视频| 欧美特级限制片免费在线观看| 三级在线观看网站| 久久精品欧美视频| 福利视频亚洲| 欧美午夜视频在线| 亚洲黄色高清| 九色91porny| 国产精品久久久久久久久久免费看 | 欧美精品性生活| 99久久精品国产导航| 久久久久成人片免费观看蜜芽| 色老头久久综合| 天堂av一区二区三区| 欧美激情精品久久久久| 99精品视频在线免费播放| 亚洲电影网站| 欧美a一区二区| 在哪里可以看毛片| 日韩欧美亚洲成人| 青青免费在线视频| 欧美亚洲第一区| 精品视频高潮| 免费看欧美黑人毛片| 国产精品一级在线| www深夜成人a√在线| 欧美日韩五月天| 91短视频版在线观看www免费| 国产成人aa精品一区在线播放| 校花撩起jk露出白色内裤国产精品| 成年人看的毛片| 不卡的看片网站| 日韩精品一卡二卡| 亚洲精品99999| 美女高潮在线观看| 精品久久中出| 亚洲自拍另类| 魔女鞋交玉足榨精调教| 欧美日韩亚洲成人| 视频三区在线观看| 51色欧美片视频在线观看| 麻豆成人入口| 丝袜老师办公室里做好紧好爽| 97国产精品videossex| 日韩少妇高潮抽搐| 亚洲精品久久7777777| 亚洲优女在线| 欧美一区二区影视| 七七婷婷婷婷精品国产| 天海翼在线视频| 日韩一区二区三区四区五区六区| 亚洲按摩av| 国产91色在线|亚洲| 日韩视频三区| 色婷婷在线影院| 欧美日韩一卡二卡三卡| 八戒八戒神马在线电影| 国产传媒一区二区| 日韩一级不卡| www亚洲色图| 欧美一区二区精品久久911| 色a资源在线| 精品国产综合久久| 人禽交欧美网站| 欧美日韩大片在线观看| 亚洲精品黄网在线观看| 欧美日韩精品一区二区三区视频| 尤物国产精品| 成人黄色国产精品网站大全在线免费观看 | 精品自拍视频在线观看| 粉嫩久久久久久久极品| av观看免费在线| 亚洲欧美日韩系列| 亚洲av成人无码网天堂| 国产一区香蕉久久| 欧美黄在线观看| 好吊日免费视频| 91精品国产麻豆国产自产在线| 19禁羞羞电影院在线观看| 日韩理论片在线观看| 国产成人亚洲精品狼色在线| 日韩欧美三级视频| 久久国产一区二区三区| 亚洲精品一级二级三级| 91小视频在线播放| 欧美日韩国产限制| 日韩在线资源| 欧美精品一区二区三区四区五区| 久久精品72免费观看| 91视频免费网址| 久久精品视频导航| 久久av影视| 国产伦精品一区二区免费| 欧美丰满少妇xxxxx高潮对白| 婷婷电影在线观看| 中文精品无码中文字幕无码专区|