精品欧美一区二区三区在线观看 _久久久久国色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)

国产精品视频自拍| 欧美写真视频网站| 国产一区二区视频在线免费观看 | 性欧美18一19性猛交| 欧美1级日本1级| 精品无人区乱码1区2区3区在线| 不卡av免费在线| 秋霞在线视频| 久久久不卡网国产精品二区| 91免费国产网站| 国产www在线| 欧美大片一区| 在线不卡国产精品| 妖精视频一区二区| 日韩成人在线一区| 欧美性生交xxxxxdddd| 中国人体摄影一区二区三区| 婷婷亚洲一区二区三区| 国内精品伊人久久久久影院对白| 51久久精品夜色国产麻豆| 五月婷婷综合激情网| 西瓜成人精品人成网站| 欧美一区二区三区的| 一本久道中文无码字幕av| 国产盗摄一区二区| 日韩美女视频一区二区 | 亚洲精品综合在线| 日韩电影免费观看在| 欧美一级一区二区三区| 国产乱色国产精品免费视频| 国产精品美女无圣光视频| 日本少妇做爰全过程毛片| 亚洲精品极品少妇16p| 亚洲色图50p| 最近日本中文字幕| 国产一区二区高清在线| 欧美性xxxxxx少妇| 日本熟妇人妻中出| 中文av在线全新| 夜夜操天天操亚洲| 黄色一级片av| 中文字幕在线三区| 亚洲欧洲国产专区| 自拍另类欧美| 日本在线播放| 中文乱码免费一区二区| 日韩在线导航| 二区三区在线| 欧美国产精品一区二区三区| 欧美一区二区在线| 免费国产在线观看| 国产亚洲美州欧州综合国| 久久精品日产第一区二区三区乱码 | 欧美啪啪一区| 欧美激情亚洲综合一区| 九九热国产精品视频| 欧美国产高清| 久久乐国产精品| 精品在线视频观看| 亚洲国产一区二区精品专区| 国模私拍一区二区三区| 日韩福利片在线观看| 亚洲三级观看| 欧美亚洲第一区| 久久久成人免费视频| 午夜影院日韩| 国产精品久久久久久久电影| 中文字幕 视频一区| 久久av资源网| 亚洲综合中文字幕在线| 亚洲欧美强伦一区二区| av一区二区不卡| 欧美日韩国产高清视频| 成人在线免费公开观看视频| 中文字幕在线观看一区二区| 日本黄xxxxxxxxx100| 成人性生交大片免费看在线播放| 亚洲国产成人av| av动漫在线观看| 国产亚洲人成a在线v网站| 欧美精品丝袜久久久中文字幕| 一级网站在线观看| 国产精品videossex| 亚洲欧美中文日韩在线| www中文在线| 国内精品久久久久久久影视麻豆 | 国产一级在线免费观看| 香蕉成人久久| 成人免费大片黄在线播放| 亚洲春色一区二区三区| 久久青草欧美一区二区三区| 一区二区三区四区欧美日韩| 国产精品国精产品一二| 日本高清不卡aⅴ免费网站| 中国黄色片一级| 精品伊人久久久| 中文日韩在线观看| 久久久精品视频免费| 日韩精品一级中文字幕精品视频免费观看 | 欧美成a人片在线观看久| 欧美高清精品3d| 免费a在线观看播放| 久久中文视频| 欧美中文在线观看国产| 国产精品探花视频| 久久综合狠狠综合久久激情 | 日本精品免费观看高清观看| www.污网站| 视频精品在线观看| 欧美精品久久久久| 一区二区三区精| 粉嫩aⅴ一区二区三区四区五区| 秋霞毛片久久久久久久久| 色呦呦在线播放| 欧美男女性生活在线直播观看| 日本一级片在线播放| 66国产精品| 国产精品国产福利国产秒拍| 日批视频免费播放| 一区二区三区免费网站| 激情五月俺来也| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久久精品一区二区| 99久久久无码国产精品免费蜜柚| 高清视频一区二区| 99热一区二区三区| 中韩乱幕日产无线码一区| 日韩精品免费在线视频| 亚洲一区二区91| 国产在线精品不卡| 亚洲韩国在线| 深夜视频一区二区| 亚洲欧美另类国产| 国产成人在线免费观看视频| 国产成人亚洲综合a∨婷婷| 一区二区日本伦理| 国产成人午夜性a一级毛片| 日韩精品在线观看视频| 精品午夜福利在线观看| 国产v综合v亚洲欧| 99久久免费观看| 欧美久久亚洲| 九色精品美女在线| 国产女人高潮毛片| 一区二区在线观看不卡| 91热视频在线观看| 亚洲第一天堂| 亚洲bt天天射| 91精品久久久| 欧美mv日韩mv国产网站| 国产一级做a爰片在线看免费| 国产99精品视频| 9色porny| 乱亲女h秽乱长久久久| 午夜精品一区二区三区视频免费看| 丰满人妻熟女aⅴ一区| 亚洲午夜激情网站| 尤物网站在线观看| 先锋影音久久久| 亚洲国产精品毛片| 亚洲午夜国产成人| 欧美裸体男粗大视频在线观看| 亚洲精品一区二区口爆| 午夜精品国产更新| 中文字幕国产综合| 麻豆成人av在线| 亚洲欧美一二三| 国产精品久久久久av蜜臀| 91av在线国产| 丁香婷婷在线| 欧美一区二区在线播放| 久久久无码精品亚洲国产| av成人免费在线观看| 黄色a级片免费| 久久裸体网站| 成人在线观看91| 欧美xxx性| 久久精品91久久香蕉加勒比| 性一交一乱一色一视频麻豆| 欧美性xxxxxx| 99鲁鲁精品一区二区三区| 国产成人av影院| 日韩久久一级片| 亚欧美无遮挡hd高清在线视频| 91入口在线观看| 激情国产在线| 日韩中文字幕视频在线观看| 亚洲欧美国产高清va在线播放| 日韩欧美在线网址| 三上悠亚在线观看视频| 本田岬高潮一区二区三区| 91淫黄看大片| 欧美特黄一级| 亚洲精品二区| 91九色鹿精品国产综合久久香蕉| 欧美一二三视频| 国产一区久久精品| 国产视频久久久久| www.av导航| 色哟哟一区二区三区| av激情在线观看| 国产亚洲自拍一区| 日本一级大毛片a一| 日韩av中文在线观看| 国产av熟女一区二区三区| 成人羞羞网站| 国产在线精品日韩| 精品久久亚洲| 国产精品久久久久影院日本| 2019中文字幕在线电影免费 | 性伦欧美刺激片在线观看| 一道本在线观看视频| 免费观看不卡av| 高清不卡日本v二区在线| 91精品国产66| 日本精品久久久久影院| 调教一区二区| 日韩少妇与小伙激情| 免费理论片在线观看播放老| 亚洲成人三级在线| 精品久久久久成人码免费动漫| 91久久人澡人人添人人爽欧美| 国产成人亚洲欧洲在线| 一区二区三区在线免费观看| 人人艹在线视频| 中文字幕欧美激情| 亚洲国产第一区| aaa国产一区| 又黄又色的网站| 国产乱理伦片在线观看夜一区| 亚洲国产精品三区| 日韩中文字幕不卡| 男人天堂网视频| 亚洲少妇一区| 真人抽搐一进一出视频| 欧美片第1页综合| 日本大胆人体视频| 午夜国产一区| 老司机午夜免费福利视频| 欧美成人精品一区二区三区在线看| 欧洲精品亚洲精品| 国产精品最新| 日韩精品伦理第一区| 久草成人在线| 日韩av高清| 精品日韩欧美一区| 色狠狠久久av五月综合| av永久不卡| 一区二区成人国产精品 | 国产福利片一区二区| 日韩欧美伦理| 亚洲午夜在线观看| 久久高清免费| 中文字幕一区二区三区四区五区人 | 欧美一区久久久| 国产成人av网| 最新日韩一区| 成人国产在线视频| 视频一区中文字幕精品| 国产日韩精品推荐| 日韩av中文字幕一区| 欧美精品一区在线发布| 欧美一区电影| 女同性恋一区二区| 伊人久久大香线蕉av超碰演员| 国产a级片网站| 乱码第一页成人| 午夜久久久精品| 国产毛片精品视频| 97香蕉碰碰人妻国产欧美 | 日韩一级大片在线| 色欲av伊人久久大香线蕉影院| 亚洲精品久久久久久下一站| 男女污视频在线观看| 精品国产一区二区三区久久狼5月| a视频在线观看| 97精品久久久| 国产精品久久久久久吹潮| 91aaaa| 小说区图片区色综合区| 制服诱惑一区| 亚洲精品麻豆| 四季av一区二区三区| 成人精品小蝌蚪| 亚洲理论片在线观看| 亚洲另类在线一区| 久久国产视频精品| 欧美精品久久久久久久多人混战| 亚洲av无码国产综合专区| 亚洲久久久久久久久久| 国产原创视频在线观看| 国产91精品不卡视频| 亚洲图片小说区| 欧美成人dvd在线视频| 亚洲综合色站| 国产日韩一区二区在线观看| 国产真实乱对白精彩久久| 美国黄色一级毛片| 亚洲精品综合在线| 黄色网址中文字幕| 亚洲成人xxx| 毛片激情在线观看| 国产v综合v亚洲欧美久久| 免费一级欧美在线大片 | 亚洲女同中文字幕| 成熟老妇女视频| 国产成人在线观看免费网站| www.av天天| 午夜视频久久久久久| 国产精品久久免费| 亚洲欧洲中文天堂| 波多野结衣久久| 91久久中文字幕| 精品日产免费二区日产免费二区| 青青草国产精品视频| 国产乱码精品一区二区三区忘忧草| 第一次破处视频| 欧美日韩美女视频| 黄色片一区二区| 久久中文久久字幕| 精品自拍视频| 色姑娘综合av| 久久婷婷一区| av无码av天天av天天爽| 亚洲永久免费av| 国产三级三级在线观看| 日韩亚洲在线观看| 亚洲www啪成人一区二区| 久久久久一区二区| 最新日韩av| 在线看黄色的网站| 亚洲电影激情视频网站| 国模无码一区二区三区| 欧美极品少妇xxxxx| 日本一区二区三区视频在线看| 一区二区在线不卡| 男人的天堂久久精品| 日韩毛片无码永久免费看| 一本到不卡免费一区二区| 亚洲色大成网站www| 91精品成人久久| 啪啪激情综合网| 免费在线观看亚洲视频| 99久久国产综合精品女不卡| 日本中文字幕在线免费观看| 亚洲电影在线看| 在线播放高清视频www| 久久精品女人的天堂av| 老司机精品视频网站| 国产jjizz一区二区三区视频| 日本久久电影网| porn视频在线观看| 成人激情在线播放| 最新欧美人z0oozo0| 日本中文字幕精品| 亚洲网友自拍偷拍| 天天爽夜夜爽夜夜爽| 97成人精品区在线播放| 女优一区二区三区| 北条麻妃在线视频| 国产精品理论片在线观看| 国产在成人精品线拍偷自揄拍| 日韩在线免费av| 国产精品成人3p一区二区三区| 91麻豆天美传媒在线| 国产91在线|亚洲| 久久精品国产成人av| 中文字幕av一区中文字幕天堂| 亚洲成人精品综合在线| av久久久久久| 91丨porny丨蝌蚪视频| 在线免费观看av网址| xxx欧美精品| 久草精品视频| 青青在线视频免费| 亚洲另类色综合网站| 日产精品久久久久久久性色| 国产精品免费久久久| 欧美福利网址| 91中文字幕永久在线| 欧美精品久久久久久久多人混战| 免费网站在线观看人| 日韩欧美精品久久| 国产盗摄精品一区二区三区在线| 好吊操这里只有精品| 主播福利视频一区| 99热这里只有精品首页 | 国产一级视频在线观看| 亚洲色图50p| 亚洲精品不卡在线观看| 美女喷白浆视频| 亚洲综合色视频| 国产爆初菊在线观看免费视频网站 | 日韩欧美三级视频| 日韩日本欧美亚洲| 亚洲理论电影片| 精品国产aⅴ一区二区三区东京热| 日韩欧美国产激情| 污的网站在线观看| 亚洲精品影院|