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

MongoDB學(xué)習(xí)筆記(三) 在MVC模式下通過(guò)Jqgrid表格操作MongoDB數(shù)據(jù)

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) MongoDB
在上一篇MongoDB學(xué)習(xí)筆記 中筆者帶領(lǐng)我們學(xué)習(xí)了如何通過(guò)samus驅(qū)動(dòng)實(shí)現(xiàn)基本數(shù)據(jù)操作,本篇中筆者帶領(lǐng)我們學(xué)習(xí)在MVC模式下通過(guò)Jqgrid表格操作MongoDB數(shù)據(jù)。

在上一篇MongoDB學(xué)習(xí)筆記 中筆者帶領(lǐng)我們學(xué)習(xí)了如何通過(guò)samus驅(qū)動(dòng)實(shí)現(xiàn)基本數(shù)據(jù)操作,本篇中筆者帶領(lǐng)我們學(xué)習(xí)在MVC模式下通過(guò)Jqgrid表格操作MongoDB數(shù)據(jù)。

看到下圖,是通過(guò)Jqgrid實(shí)現(xiàn)表格數(shù)據(jù)的基本增刪查改的操作。表格數(shù)據(jù)增刪改是一般企業(yè)應(yīng)用系統(tǒng)開(kāi)發(fā)的常見(jiàn)功能,不過(guò)不同的是這個(gè)表格數(shù)據(jù)來(lái)源是非關(guān)系型的數(shù)據(jù)庫(kù)MongoDB。nosql雖然概念新穎,但是MongoDB基本應(yīng)用實(shí)現(xiàn)起來(lái)還是比較輕松的,甚至代碼比基本的ADO.net訪問(wèn)關(guān)系數(shù)據(jù)源還要簡(jiǎn)潔。由于其本身的“非關(guān)系”的數(shù)據(jù)存儲(chǔ)方式,使得對(duì)象關(guān)系映射這個(gè)環(huán)節(jié)對(duì)于MongoDB來(lái)講顯得毫無(wú)意義,因此我們也不會(huì)對(duì)MongoDB引入所謂的“ORM”框架。

下面我們將逐步講解怎么在MVC模式下將MongoDB數(shù)據(jù)讀取,并展示在前臺(tái)Jqgrid表格上。這個(gè)“簡(jiǎn)易系統(tǒng)”的基本設(shè)計(jì)思想是這樣的:我們?cè)谝晥D層展示表格,Jqgrid相關(guān)Js邏輯全部放在一個(gè)Js文件中,控制層實(shí)現(xiàn)了“增刪查改”四個(gè)業(yè)務(wù),MongoDB的基本數(shù)據(jù)訪問(wèn)放在了模型層實(shí)現(xiàn)。下面我們一步步實(shí)現(xiàn)。

一、實(shí)現(xiàn)視圖層Jqgrid表格邏輯

  首先,我們新建一個(gè)MVC空白項(xiàng)目,添加好jQuery、jQueryUI、Jqgrid的前端框架代碼:

  然后在Views的Home文件夾下新建視圖“Index.aspx”,在視圖的body標(biāo)簽中添加如下HTML代碼:

  1. <div>    
  2.  
  3.     <table id="table1">    
  4.  
  5.     </table>    
  6.  
  7.     <div id="div1">    
  8.  
  9.     </div>    
  10.  
  11. </div>   

接著新建Scripts\Home文件夾,在該目錄新建“Index.js”文件,并再視圖中引用,代碼如下:

  1. jQuery(document).ready(function () {    
  2.     //jqGrid初始化    
  3.     jQuery("#table1").jqGrid({    
  4.         url: '/Home/UserList',    
  5.         datatype: 'json',    
  6.         mtype: 'POST',    
  7.         colNames: ['登錄名''姓名''年齡''手機(jī)號(hào)''郵箱地址''操作'],    
  8.         colModel: [    
  9.              { name'UserId'index'UserId', width: 180, editable: true },    
  10.              { name'UserName'index'UserName', width: 200, editable: true },    
  11.              { name'Age'index'Age', width: 150, editable: true },    
  12.              { name'Tel'index'Tel', width: 150, editable: true },    
  13.              { name'Email'index'Email', width: 150, editable: true },    
  14.              { name'Edit'index'Edit', width: 150, editable: false, align: 'center' }    
  15.              ],    
  16.         pager: '#div1',    
  17.         postData: {},    
  18.         rowNum: 5,    
  19.         rowList: [5, 10, 20],    
  20.         sortable: true,    
  21.         caption: '用戶(hù)信息管理',    
  22.         hidegrid: false,    
  23.         rownumbers: true,    
  24.         viewrecords: true   
  25.     }).navGrid('#div1', { edit: falseaddfalse, del: false })    
  26.             .navButtonAdd('#div1', {    
  27.                 caption: "編輯",    
  28.                 buttonicon: "ui-icon-add",    
  29.                 onClickButton: function () {    
  30.                     var id = $("#table1").getGridParam("selrow");    
  31.                     if (id == null) {    
  32.                         alert("請(qǐng)選擇行!");    
  33.                         return;    
  34.                     }    
  35.                     if (id == "newId"return;    
  36.                     $("#table1").editRow(id);    
  37.                     $("#table1").find("#" + id + "_UserId").attr("readonly","readOnly");    
  38.                     $("#table1").setCell(id, "Edit""<input id='Button1' type='button' value='提交' onclick='Update(\"" + id + "\")' /><input id='Button2' type='button' value='取消' onclick='Cancel(\"" + id + "\")' />");    
  39.                 }    
  40.             }).navButtonAdd('#div1', {    
  41.                 caption: "刪除",    
  42.                 buttonicon: "ui-icon-del",    
  43.                 onClickButton: function () {    
  44.                     var id = $("#table1").getGridParam("selrow");    
  45.                     if (id == null) {    
  46.                         alert("請(qǐng)選擇行!");    
  47.                         return;    
  48.                     }    
  49.                     Delete(id);    
  50.                 }    
  51.             }).navButtonAdd('#div1', {    
  52.                 caption: "新增",    
  53.                 buttonicon: "ui-icon-add",    
  54.                 onClickButton: function () {    
  55.                     $("#table1").addRowData("newId", -1);    
  56.                     $("#table1").editRow("newId");    
  57.                     $("#table1").setCell("newId""Edit""<input id='Button1' type='button' value='提交' onclick='Add()' /><input id='Button2' type='button' value='取消' onclick='Cancel(\"newId\")' />");    
  58.                 }    
  59.             });    
  60. });    
  61. //取消編輯狀態(tài)    
  62. function Cancel(id) {    
  63.     if (id == "newId") $("#table1").delRowData("newId");    
  64.     else $("#table1").restoreRow(id);    
  65. }    
  66. //向后臺(tái)ajax請(qǐng)求新增數(shù)據(jù)    
  67. function Add() {    
  68.     var UserId = $("#table1").find("#newId" + "_UserId").val();    
  69.     var UserName = $("#table1").find("#newId" + "_UserName").val();    
  70.     var Age = $("#table1").find("#newId" + "_Age").val();    
  71.     var Tel = $("#table1").find("#newId" + "_Tel").val();    
  72.     var Email = $("#table1").find("#newId" + "_Email").val();    
  73.     $.ajax({    
  74.         type: "POST",    
  75.         url: "/Home/Add",    
  76.         data: "UserId=" + UserId + "&UserName=" + UserName + "&Age=" + Age + "&Tel=" + Tel + "&Email=" + Email,    
  77.         success: function (msg) {    
  78.             alert("新增數(shù)據(jù): " + msg);    
  79.             $("#table1").trigger("reloadGrid");    
  80.         }    
  81.     });    
  82. }    
  83. //向后臺(tái)ajax請(qǐng)求更新數(shù)據(jù)    
  84. function Update(id) {    
  85.     var UserId = $("#table1").find("#" + id + "_UserId").val();    
  86.     var UserName = $("#table1").find("#" + id + "_UserName").val();    
  87.     var Age = $("#table1").find("#" + id + "_Age").val();    
  88.     var Tel = $("#table1").find("#" + id + "_Tel").val();    
  89.     var Email = $("#table1").find("#" + id + "_Email").val();    
  90.     $.ajax({    
  91.         type: "POST",    
  92.         url: "/Home/Update",    
  93.         data: "UserId=" + UserId + "&UserName=" + UserName + "&Age=" + Age + "&Tel=" + Tel + "&Email=" + Email,    
  94.         success: function (msg) {    
  95.             alert("修改數(shù)據(jù): " + msg);    
  96.             $("#table1").trigger("reloadGrid");    
  97.         }    
  98.     });    
  99. }    
  100. //向后臺(tái)ajax請(qǐng)求刪除數(shù)據(jù)    
  101. function Delete(id) {    
  102.     var UserId = $("#table1").getCell(id, "UserId");    
  103.     $.ajax({    
  104.         type: "POST",    
  105.         url: "/Home/Delete",    
  106.         data: "UserId=" + UserId,    
  107.         success: function (msg) {    
  108.             alert("刪除數(shù)據(jù): " + msg);    
  109.             $("#table1").trigger("reloadGrid");    
  110.         }    
  111.     });    
  112. }  

二、實(shí)現(xiàn)控制層業(yè)務(wù)

  在Controllers目錄下新建控制器“HomeController.cs”,Index.js中產(chǎn)生了四個(gè)ajax請(qǐng)求,對(duì)應(yīng)控制層也有四個(gè)業(yè)務(wù)方法。HomeController代碼如下:

  1. public class HomeController : Controller    
  2. {    
  3.     UserModel userModel = new UserModel();    
  4.     public ActionResult Index()    
  5.     {    
  6.         return View();    
  7.     }    
  8.     /// <summary>    
  9.     /// 獲取全部用戶(hù)列表,通過(guò)json將數(shù)據(jù)提供給jqGrid    
  10.     /// </summary>    
  11.     public JsonResult UserList(string sord, string sidx, string rows, string page)    
  12.     {    
  13.         var list = userModel.FindAll();    
  14.         int i = 0;    
  15.         var query = from u in list    
  16.                     select new   
  17.                     {    
  18.                         id = i++,    
  19.                         cell = new string[]{    
  20.                             u["UserId"].ToString(),    
  21.                             u["UserName"].ToString(),    
  22.                             u["Age"].ToString(),    
  23.                             u["Tel"].ToString(),    
  24.                             u["Email"].ToString(),    
  25.                             "-"   
  26.                         }    
  27.                     };    
  28.         var data = new   
  29.         {    
  30.             total = query.Count() / Convert.ToInt32(rows) + 1,    
  31.             page = Convert.ToInt32(page),    
  32.             records = query.Count(),    
  33.             rows = query.Skip(Convert.ToInt32(rows) * (Convert.ToInt32(page) - 1)).Take(Convert.ToInt32(rows))    
  34.         };    
  35.         return Json(data, JsonRequestBehavior.AllowGet);    
  36.     }    
  37.     /// <summary>    
  38.     /// 響應(yīng)Js的“Add”ajax請(qǐng)求,執(zhí)行添加用戶(hù)操作    
  39.     /// </summary>    
  40.     public ContentResult Add(string UserId, string UserName, int Age, string Tel, string Email)    
  41.     {    
  42.         Document doc = new Document();    
  43.         doc["UserId"] = UserId;    
  44.         doc["UserName"] = UserName;    
  45.         doc["Age"] = Age;    
  46.         doc["Tel"] = Tel;    
  47.         doc["Email"] = Email;    
  48.         try   
  49.         {    
  50.             userModel.Add(doc);    
  51.             return Content("添加成功");    
  52.  
  53.         }    
  54.         catch   
  55.         {    
  56.             return Content("添加失敗");    
  57.         }    
  58.     }    
  59.     /// <summary>    
  60.     /// 響應(yīng)Js的“Delete”ajax請(qǐng)求,執(zhí)行刪除用戶(hù)操作    
  61.     /// </summary>    
  62.     public ContentResult Delete(string UserId)    
  63.     {    
  64.         try   
  65.         {    
  66.             userModel.Delete(UserId);    
  67.             return Content("刪除成功");    
  68.         }    
  69.         catch   
  70.         {    
  71.             return Content("刪除失敗");    
  72.         }    
  73.     }    
  74.     
  75.     /// <summary>    
  76.     /// 響應(yīng)Js的“Update”ajax請(qǐng)求,執(zhí)行更新用戶(hù)操作    
  77.     /// </summary>    
  78.     public ContentResult Update(string UserId, string UserName, int Age, string Tel, string Email)    
  79.     {    
  80.         Document doc = new Document();    
  81.         doc["UserId"] = UserId;    
  82.         doc["UserName"] = UserName;    
  83.         doc["Age"] = Age;    
  84.         doc["Tel"] = Tel;    
  85.         doc["Email"] = Email;    
  86.         try   
  87.         {    
  88.             userModel.Update(doc);    
  89.             return Content("修改成功");    
  90.         }    
  91.         catch   
  92.         {    
  93.             return Content("修改失敗");    
  94.         }    
  95.     }    
  96. }  

三、實(shí)現(xiàn)模型層數(shù)據(jù)訪問(wèn)

  ***,我們?cè)贛odels新建一個(gè)Home文件夾,添加模型“UserModel.cs”,實(shí)現(xiàn)MongoDB數(shù)據(jù)庫(kù)訪問(wèn)代碼如下:

  1. public class UserModel    
  2.  {    
  3.      //鏈接字符串(此處三個(gè)字段值根據(jù)需要可為讀配置文件)    
  4.      public string connectionString = "mongodb://localhost";    
  5.      //數(shù)據(jù)庫(kù)名    
  6.      public string databaseName = "myDatabase";    
  7.      //集合名     
  8.      public string collectionName = "userCollection";    
  9.      private Mongo mongo;    
  10.      private MongoDatabase mongoDatabase;    
  11.      private MongoCollection<Document> mongoCollection;    
  12.      public UserModel()    
  13.      {    
  14.          mongo = new Mongo(connectionString);    
  15.          mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;    
  16.          mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;    
  17.          mongo.Connect();    
  18.      }    
  19.      ~UserModel()    
  20.      {    
  21.          mongo.Disconnect();    
  22.      }    
  23.      /// <summary>    
  24.      /// 增加一條用戶(hù)記錄    
  25.      /// </summary>    
  26.      /// <param name="doc"></param>    
  27.      public void Add(Document doc)    
  28.      {    
  29.          mongoCollection.Insert(doc);    
  30.      }    
  31.      /// <summary>    
  32.      /// 刪除一條用戶(hù)記錄    
  33.      /// </summary>    
  34.      public void Delete(string UserId)    
  35.      {    
  36.          mongoCollection.Remove(new Document { { "UserId", UserId } });    
  37.      }    
  38.      /// <summary>    
  39.      /// 更新一條用戶(hù)記錄    
  40.      /// </summary>    
  41.      /// <param name="doc"></param>    
  42.      public void Update(Document doc)    
  43.      {    
  44.          mongoCollection.FindAndModify(doc, new Document { { "UserId", doc["UserId"].ToString() } });    
  45.      }    
  46.      /// <summary>    
  47.      /// 查找所有用戶(hù)記錄    
  48.      /// </summary>    
  49.      /// <returns></returns>    
  50.      public IEnumerable<Document> FindAll()    
  51.      {    
  52.          return mongoCollection.FindAll().Documents;    
  53.      }    
  54.  } 

 
四、小結(jié)
  代碼下載:http://files.cnblogs.com/lipan/MongoDB_003.rar

  自此為止一個(gè)簡(jiǎn)單MongoDB表格數(shù)據(jù)操作的功能就實(shí)現(xiàn)完畢了,相信讀者在看完這篇文章后,差不多都可以輕松實(shí)現(xiàn)MongoDB項(xiàng)目的開(kāi)發(fā)應(yīng)用了。聰明的你一定會(huì)比本文做的功能更完善,更好。下篇計(jì)劃講解linq的方式訪問(wèn)數(shù)據(jù)集合。

原文出處:http://www.cnblogs.com/lipan/archive/2011/03/11/1980227.html

 

【編輯推薦】

  1. MongoDB學(xué)習(xí)筆記(一) MongoDB介紹及安裝
  2. MongoDB學(xué)習(xí)筆記(二) 通過(guò)samus驅(qū)動(dòng)實(shí)現(xiàn)基本數(shù)據(jù)操作
  3. 拋棄關(guān)系數(shù)據(jù)庫(kù) PHP程序員應(yīng)了解MongoDB的五件事
  4. MongoDB,無(wú)模式文檔型數(shù)據(jù)庫(kù)簡(jiǎn)介
  5. Visual Studio 2010下編譯調(diào)試MongoDB源碼

 

責(zé)任編輯:艾婧 來(lái)源: 博客園
相關(guān)推薦

2011-03-21 13:28:14

MongoDB文件存取

2011-03-09 09:18:49

MongoDBsamus

2011-09-14 15:30:00

MongoDB

2011-03-08 10:27:25

MongoDB介紹安裝

2011-06-30 13:31:35

MongoDB

2011-03-17 09:06:34

MongoDB文檔結(jié)構(gòu)

2011-03-28 13:29:22

MongoDB索引用法效率分析

2012-07-16 10:19:02

MongoDB

2012-08-17 09:48:55

MongoDB

2023-12-18 16:07:15

2011-01-10 11:09:16

linuxMongoDB安裝

2017-07-07 10:55:14

數(shù)據(jù)庫(kù)MongoDB設(shè)計(jì)模式

2022-03-10 09:08:43

數(shù)據(jù)庫(kù)Mongodb數(shù)據(jù)庫(kù)轉(zhuǎn)

2021-08-04 09:00:53

Python數(shù)據(jù)庫(kù)Python基礎(chǔ)

2013-11-28 09:48:55

MongoDBSharding分片

2021-03-04 10:37:37

PythonMongoDB數(shù)據(jù)庫(kù)

2011-06-03 10:06:57

MongoDB

2009-09-04 09:33:50

MongoDB

2013-11-22 10:02:59

Mongodb千萬(wàn)級(jí)數(shù)據(jù)python

2025-05-14 08:15:00

MongoDB操作命令Docker
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

717成人午夜免费福利电影| 久久综合视频网| 欧美日韩ab片| av在线网站观看| 欧美va在线观看| 国产精品白丝在线| 国产伦精品一区二区三区视频黑人 | 亚洲女人天堂视频| 五月花丁香婷婷| 成人在线黄色电影| 亚洲欧洲韩国日本视频| 激情视频一区二区| 91av国产精品| 亚洲尤物影院| 操人视频在线观看欧美| 性久久久久久久久久| 日韩综合久久| 色呦呦日韩精品| 久久这里只有精品18| jizz亚洲| 久久精品夜色噜噜亚洲aⅴ| 99视频在线免费观看| 美女黄页在线观看| 99精品视频网| 欧美精品一区二区三区国产精品| 精品成人无码一区二区三区| 国产精品chinese在线观看| 欧美夫妻性生活| 国产一区亚洲二区三区| 1024在线看片你懂得| 亚洲日本青草视频在线怡红院| 鲁丝一区鲁丝二区鲁丝三区| aaa一区二区三区| 蜜桃视频在线一区| 国产97人人超碰caoprom| 日本熟妇成熟毛茸茸| 亚洲一本二本| 一夜七次郎国产精品亚洲| 艳妇乳肉豪妇荡乳xxx| 久久免费精品| 在线播放中文一区| 69久久久久久| 97久久网站| 日本乱人伦一区| 欧美aⅴ在线观看| 国产伦久视频在线观看| 亚洲一区二区av电影| 2021狠狠干| 成人免费网址| 亚洲免费观看高清| 美女在线免费视频| av毛片在线免费看| 亚洲精品国产一区二区精华液| 桥本有菜av在线| 日韩美女网站| 亚洲丝袜另类动漫二区| 青青草国产精品| 北条麻妃在线| 国产精品成人免费精品自在线观看 | 性生交免费视频| 在线日本欧美| 欧美精品久久一区二区三区| 尤物网站在线看| 日韩精品一区二区三区中文字幕 | 人人九九精品| 国产日产欧美精品一区二区三区| 欧美在线播放一区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 久久精品水蜜桃av综合天堂| 四虎永久国产精品| 欧美18hd| 亚洲午夜av在线| 国产超级av在线| 亚州一区二区三区| 欧美精品自拍偷拍| 少妇搡bbbb搡bbb搡打电话| 久久久久影视| 国产亚洲精品久久久优势| 亚洲毛片亚洲毛片亚洲毛片| 中文无码久久精品| 7m精品福利视频导航| 欧美特级黄色片| 精一区二区三区| 成人在线看片| 国内av一区二区三区| 国产精品免费久久| 日韩精品一区二区三区四| 涩涩涩视频在线观看| 欧美三级三级三级爽爽爽| 色男人天堂av| 亚洲黄页网站| 久久夜色精品国产| 毛片毛片女人毛片毛片| 久久精品国产亚洲一区二区三区 | 日韩综合精品| 久久久久国产精品一区| 免费av中文字幕| 国产成人免费在线观看不卡| 国产精品视频免费观看| av电影在线观看| 亚洲一区欧美一区| 亚洲福利精品视频| 欧美精品密入口播放| 日韩中文字幕在线| 在线观看日本视频| 国产精品一二三| 色就是色欧美| 国模精品视频| 日韩一区二区免费在线观看| 精品无码国产污污污免费网站| 91精品啪在线观看国产81旧版 | 国产精品一区二区三区四| 精品亚洲成av人在线观看| 久久国产日韩欧美| 视频在线观看入口黄最新永久免费国产| 色悠悠久久综合| 日本天堂在线播放| 婷婷综合五月| 国产精品吴梦梦| 色久视频在线播放| 亚洲一区二区综合| 天天摸天天舔天天操| 久9久9色综合| 午夜精品一区二区三区av| 国产精品美女一区| 日本一区二区三区dvd视频在线| 成人免费视频91| 日本伊人久久| 北条麻妃99精品青青久久| 五月婷婷六月婷婷| 91美女视频网站| 中文精品无码中文字幕无码专区| 另类一区二区三区| 一区二区三区国产视频| 黄色片视频免费| 91蝌蚪porny九色| 国产精品50p| 久久草在线视频| 欧美精品一区在线播放| 国产探花精品一区二区| 亚洲视频一区在线观看| 国产永久免费网站| 国产精品麻豆久久| 成人午夜激情网| 国产原创视频在线观看| 91精品国产一区二区三区| 久久国产高清视频| 国产在线播放一区| 国产欧美综合一区| 亚洲三级av| 欧美精品亚州精品| 亚洲毛片欧洲毛片国产一品色| 亚洲精品久久久久久国产精华液| 蜜桃视频无码区在线观看| 欧美激情自拍| 国产精品久久久久久久免费大片| 青草视频在线免费直播| 亚洲成人xxx| 在线观看免费国产视频| 久久久久99精品一区| 国产成人手机视频| 色爱综合网欧美| 成人在线一区二区| 欧美精品videosex| 亚洲精品国产精品久久清纯直播 | 国产一级特黄a高潮片| 成人高清视频免费观看| 国产中文字幕免费观看| 精品日韩在线| 亚洲自拍高清视频网站| a级片在线免费| 亚洲人成在线观看| 一级成人免费视频| 亚洲国产另类av| 高潮毛片无遮挡| 久久成人免费网站| www.xxx麻豆| 国产精品欧美日韩一区| 91深夜福利视频| 日本黄色免费在线| www.精品av.com| 国产综合在线播放| 一本色道a无线码一区v| 小泽玛利亚一区二区免费| 北条麻妃国产九九精品视频| www.99在线| 国产一区二区三区四区老人| 日韩av高清| 亚洲福利合集| 国产精品久久久av| 免费在线观看av电影| 国产亚洲精品va在线观看| 国产婷婷在线视频| 日韩欧美在线观看视频| 欧美性x x x| 久久这里只精品最新地址| 天天做天天干天天操| 亚洲综合99| 欧美日韩中文字幕在线播放| 免费欧美一区| 国产精品久久久久久久小唯西川 | 亚洲欧美精品在线| 精品人妻伦一二三区久久 | 欧美人与拘性视交免费看| 91在线视频一区| 欧美黑人疯狂性受xxxxx野外| 久热精品视频在线| 国产高清自拍视频在线观看| 精品sm在线观看| 国产欧美一区二区三区视频在线观看| 欧美天堂在线观看| 日本三级片在线观看| 国产精品传媒视频| 免费看日本黄色片| av不卡一区二区三区| 免费观看黄网站| 久久精品免费观看| 日本中文字幕高清| 国产视频一区欧美| 给我免费播放片在线观看| 小处雏高清一区二区三区| 日韩国产欧美一区| 西野翔中文久久精品国产| av在线亚洲男人的天堂| 日韩五码电影| 国产精品中文字幕久久久| 欧美男体视频| 91av免费观看91av精品在线| 久久亚洲导航| 美女啪啪无遮挡免费久久网站| av每日在线更新| 伊人男人综合视频网| 玖玖综合伊人| 亚洲网站视频福利| 黄网在线免费| 国产亚洲欧美日韩精品| 欧美精品久久久久久久久久丰满| 精品国产91乱码一区二区三区| 国产模特av私拍大尺度| 欧美高清视频一二三区 | 中文字幕一区二区在线视频| 91精品办公室少妇高潮对白| 69视频免费看| 欧美色成人综合| 一区二区www| 日韩一区二区电影在线| www.成人精品| 精品久久久久99| 色欲久久久天天天综合网 | 国产免费一区二区三区最新6| 成人高清视频在线| 国产精品福利导航| 91日韩精品一区| 亚洲人成人无码网www国产| 久久精品夜色噜噜亚洲a∨| 在线国产视频一区| 中文字幕乱码日本亚洲一区二区 | 91精品蜜臀一区二区三区在线| 中文字幕一区综合| 欧美日韩亚洲三区| 日本在线xxx| 久久精品伊人| 亚洲欧美偷拍另类| 国产成人免费视频网站| 国产大学生视频| 久久综合国产精品| 91麻豆制片厂| 亚洲尤物在线视频观看| 国产成人无码精品久在线观看| 欧美日韩在线视频观看| 日韩精品成人免费观看视频| 欧美日韩大陆一区二区| 亚洲国产精品国自产拍久久| 亚洲精品不卡在线| 高清中文字幕一区二区三区| 久久韩剧网电视剧| xxx.xxx欧美| 国产精品成av人在线视午夜片| 亚洲综合资源| 精品久久sese| 日韩毛片视频| 成人免费毛片在线观看| 日韩成人午夜电影| 中文字幕avav| 国产欧美精品一区| 久久婷婷综合国产| 欧美在线免费视屏| 精品女同一区二区三区| 国产亚洲欧洲高清| 污片在线免费观看| 国产精品精品久久久久久| 涩爱av色老久久精品偷偷鲁| 欧美裸体网站| 国语对白精品一区二区| 久久黄色免费看| 成人黄页毛片网站| 韩国一级黄色录像| 欧美日韩一区免费| 亚洲福利在线观看视频| 国产一区二区三区在线免费观看| 国产美女情趣调教h一区二区| 国产精品久久久av| 青青一区二区| 日韩中文在线字幕| 日韩制服丝袜先锋影音| 理论片大全免费理伦片| 亚洲色图清纯唯美| 日韩黄色片网站| 日韩av网站导航| 先锋成人av| 国产原创欧美精品| 国产91精品对白在线播放| 国产中文字幕乱人伦在线观看| 美女一区二区三区在线观看| 五月婷婷综合在线观看| 亚洲午夜羞羞片| 国产理论片在线观看| 尤物yw午夜国产精品视频明星| 高清毛片在线观看| 俄罗斯精品一区二区三区| 欧美h版在线| 爱情岛论坛亚洲首页入口章节| ww久久中文字幕| 国产成人无码精品久久久久| 精品美女被调教视频大全网站| 米奇777四色精品人人爽| 国产精品第1页| 欧美日韩在线二区| 亚洲欧洲日产国码无码久久99| 成人午夜电影小说| 少妇久久久久久被弄高潮| 在线播放日韩导航| 精品国产丝袜高跟鞋| 成人写真福利网| 欧美wwwww| 亚洲精品午夜在线观看| 欧美激情一区二区三区四区| 少妇又紧又色又爽又刺激视频| 亚洲欧美另类自拍| 都市激情亚洲综合| 欧美日韩精品免费在线观看视频| 久久国产直播| 免费看的黄色网| 欧美午夜在线观看| av在线电影网| 成人美女免费网站视频| 偷拍欧美精品| 先锋资源在线视频| 亚洲午夜在线电影| 人妻妺妺窝人体色www聚色窝| 97免费在线视频| 亚洲精华一区二区三区| 日日摸天天爽天天爽视频| 欧美激情综合网| 在线观看亚洲一区二区| 久久精品视频播放| 中文字幕av一区二区三区四区| 国产va亚洲va在线va| 99riav久久精品riav| 欧美特级黄色片| 美女少妇精品视频| av不卡一区| 黑人糟蹋人妻hd中文字幕| 国产校园另类小说区| 91极品身材尤物theporn| 久久资源免费视频| 国产美女撒尿一区二区| 天天摸天天碰天天添| 欧美国产激情二区三区| av中文字幕免费在线观看| 久久久久免费视频| 国产乱码精品一区二区三区四区| 国产一级片自拍| 亚洲高清免费一级二级三级| 欧洲综合视频| 国产中文日韩欧美| 亚洲激情综合| 免费在线观看a视频| 日韩情涩欧美日韩视频| 中文字幕在线视频久| 日本精品一级二级| 天堂av在线免费观看| 日韩av电影手机在线观看| 国产精品99视频| 你懂的在线观看网站| 欧美色精品天天在线观看视频| 欧美高清另类hdvideosexjaⅴ| 欧美精品一区二区三区在线四季 | 国产精品亚洲一区二区无码| 欧美日韩中文字幕综合视频| 午夜老司机在线观看| 精品人伦一区二区三区| 蜜臀久久久99精品久久久久久| 久久久久久久久97| 国产一区二区三区在线观看视频 | 日韩av在线播| 中文在线不卡视频| 黄色欧美网站| 久久久久久久久久久久久久久国产| 欧美日韩国产一区二区|