成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)

ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)

熱門標(biāo)簽:海東防封電銷卡 南昌自動外呼系統(tǒng)線路 上海市三維地圖標(biāo)注 聊城智能電銷機器人電話 云南外呼系統(tǒng)代理 寧德防封版電銷卡 西寧電銷外呼系統(tǒng)公司 安陸市地圖標(biāo)注app 辦公用地圖標(biāo)注網(wǎng)點怎么操作

上次做了顯示文章列表,再實現(xiàn)修改和刪除文章這部分內(nèi)容就結(jié)束了,這次內(nèi)容比較簡單,由于做過了添加文章,修改文章非常類似,就是多了一個TryUpdateModel部分更新模型數(shù)據(jù)。
一、刪除文章
由于公共模型跟,文章,附件有關(guān)聯(lián),所以這里的刪除次序很重要,如果先刪除模型,那么文章ModelID和附件的ModelID多會變成null,所以要先先刪除文章和附件再刪除公共模型。

由于公共模型和附件是一對多的關(guān)系,我們把刪除公共模型和刪除附件寫在一起。

在BLL的BaseRepository類中有默認(rèn)的Delete方法,但這個方法中僅刪除模型,不會刪除外鍵,所以在CommonModelRepository在new一個出來封印掉默認(rèn)的方法。

public new bool Delete(Models.CommonModel commonModel, bool isSave = true)
  {
   if (commonModel.Attachment != null) nContext.Attachments.RemoveRange(commonModel.Attachment);
   nContext.CommonModels.Remove(commonModel);
   return isSave ? nContext.SaveChanges() > 0 : true;
  }

這個的意思是封印掉繼承的Delete方法,在新的方法中如果存在附加那么先刪除附件,再刪除公共模型。那么如果我們還想調(diào)用基類的Delete方法怎么辦?可以用base.Delete。

好了,現(xiàn)在可以開始刪除了。

在ArticleController中添加Delete方法

/// summary>
  /// 刪除
  /// /summary>
  /// param name="id">文章id/param>
  /// returns>/returns>
  public JsonResult Delete(int id)
  {
   //刪除附件
   var _article = articleService.Find(id);
   if(_article == null) return Json(false);
   //附件列表
   var _attachmentList = _article.CommonModel.Attachment;
   var _commonModel = _article.CommonModel;
   //刪除文章
   if (articleService.Delete(_article))
   {
    //刪除附件文件
    foreach (var _attachment in _attachmentList)
    {
     System.IO.File.Delete(Server.MapPath(_attachment.FileParth));
    }
    //刪除公共模型
    commonModelService.Delete(_commonModel);
    return Json(true);
   }
   else return Json(false);
  }

二、修改文章
這個部分跟添加文章非常類似
首先在ArticleController中添加顯示編輯視圖的Edit

/// summary>
  /// 修改
  /// /summary>
  /// param name="id">/param>
  /// returns>/returns>
  public ActionResult Edit(int id)
  {
   return View(articleService.Find(id));
  }

右鍵添加視圖,這個跟添加類似,沒什么好說的直接上代碼

@section scripts{
 script type="text/javascript" src="~/Scripts/KindEditor/kindeditor-min.js">/script>
 script type="text/javascript">
  //編輯框
  KindEditor.ready(function (K) {
   window.editor = K.create('#Content', {
    height: '500px',
    uploadJson: '@Url.Action("Upload", "Attachment")',
    fileManagerJson: '@Url.Action("FileManagerJson", "Attachment", new { id = @Model.CommonModel.ModelID })',
    allowFileManager: true,
    formatUploadUrl: false
   });
  //首頁圖片
   var editor2 = K.editor({
    fileManagerJson: '@Url.Action("FileManagerJson", "Attachment", new {id=@Model.CommonModel.ModelID })'
   });
   K('#btn_picselect').click(function () {
    editor2.loadPlugin('filemanager', function () {
     editor2.plugin.filemanagerDialog({
      viewType: 'VIEW',
      dirName: 'image',
      clickFn: function (url, title) {
       var url;
       $.ajax({
        type: "post",
        url: "@Url.Action("CreateThumbnail", "Attachment")",
        data: { originalPicture: url },
        async: false,
        success: function (data) {
         if (data == null) alert("生成縮略圖失??!");
         else {
          K('#CommonModel_DefaultPicUrl').val(data);
          K('#imgpreview').attr("src", data);
         }
         editor2.hideDialog();
        }
       });
      }
     });
    });
   });
  });
 /script>
}

@model Ninesky.Models.Article
@using (Html.BeginForm())
{ @Html.AntiForgeryToken()
 div class="form-horizontal" role="form">
  h4>添加文章/h4>
  hr />
  @Html.ValidationSummary(true)
  div class="form-group">
   label class="control-label col-sm-2" for="CommonModel_CategoryID">欄目/label>
   div class="col-sm-10">
    input id="CommonModel_CategoryID" name="CommonModel.CategoryID" data-options="url:'@Url.Action("JsonTree", "Category", new { model="Article" })'" class="easyui-combotree" style="height: 34px; width: 280px;" value="@Model.CommonModel.CategoryID" />
      @Html.ValidationMessageFor(model => model.CommonModel.CategoryID)/div>
  /div>
  div class="form-group">
   @Html.LabelFor(model => model.CommonModel.Title, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
      @Html.TextBoxFor(model => model.CommonModel.Title, new { @class = "form-control" })
      @Html.ValidationMessageFor(model => model.CommonModel.Title)/div>
  /div>


  div class="form-group">
   @Html.LabelFor(model => model.Author, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.TextBoxFor(model => model.Author, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Author)
   /div>
  /div>

  div class="form-group">
   @Html.LabelFor(model => model.Source, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.TextBoxFor(model => model.Source, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Source)
   /div>
  /div>

  div class="form-group">
   @Html.LabelFor(model => model.Intro, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.TextAreaFor(model => model.Intro, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Intro)
   /div>
  /div>

  div class="form-group">
   @Html.LabelFor(model => model.Content, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.EditorFor(model => model.Content)
    @Html.ValidationMessageFor(model => model.Content)
   /div>
  /div>

  div class="form-group">
   @Html.LabelFor(model => model.CommonModel.DefaultPicUrl, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    img id="imgpreview" class="thumbnail" src="@Model.CommonModel.DefaultPicUrl" />
    @Html.HiddenFor(model => model.CommonModel.DefaultPicUrl)
    a id="btn_picselect" class="easyui-linkbutton">選擇…/a>
    @Html.ValidationMessageFor(model => model.CommonModel.DefaultPicUrl)
   /div>
  /div>

  div class="form-group">
   div class="col-sm-offset-2 col-sm-10">
    input type="submit" value="保存" class="btn btn-default" />
   /div>
  /div>
 /div>
}

開始做后臺接受代碼,在ArticleController中添加如下代碼。

[HttpPost]
  [ValidateInput(false)]
  [ValidateAntiForgeryToken]
  public ActionResult Edit()
  {
   int _id = int.Parse(ControllerContext.RouteData.GetRequiredString("id"));
   var article = articleService.Find(_id);
   TryUpdateModel(article, new string[] { "Author", "Source", "Intro", "Content" });
   TryUpdateModel(article.CommonModel, "CommonModel", new string[] { "CategoryID", "Title", "DefaultPicUrl" });
   if(ModelState.IsValid)
   {
    if (articleService.Update(article))
    {
     //附件處理
     InterfaceAttachmentService _attachmentService = new AttachmentService();
     var _attachments = _attachmentService.FindList(article.CommonModel.ModelID, User.Identity.Name, string.Empty,true).ToList();
     foreach (var _att in _attachments)
     {
      var _filePath = Url.Content(_att.FileParth);
      if ((article.CommonModel.DefaultPicUrl != null  article.CommonModel.DefaultPicUrl.IndexOf(_filePath) >= 0) || article.Content.IndexOf(_filePath) > 0)
      {
       _att.ModelID = article.ModelID;
       _attachmentService.Update(_att);
      }
      else
      {
       System.IO.File.Delete(Server.MapPath(_att.FileParth));
       _attachmentService.Delete(_att);
      }
     }
     return View("EditSucess", article);
    }
   }
   return View(article);
  }

詳細(xì)講解一下吧:

1、[ValidateInput(false)] 表示不驗證輸入內(nèi)容。因為文章內(nèi)容包含html代碼,防止提交失敗。

2、[ValidateAntiForgeryToken]是為了防止偽造跨站請求的,也就說只有本真的請求才能通過。

見圖中的紅線部分,在試圖中構(gòu)造驗證字符串,然后再后臺驗證。

3、public ActionResult Edit()??催@個方法沒有接收任何數(shù)據(jù),我們再方法中使用TryUpdateModel更新模型。因為不能完全相信用戶,比如如果用戶構(gòu)造一個CateggoryID過來,就會把文章發(fā)布到其他欄目去。

這個是在路由中獲取id參數(shù)

再看這兩行,略有不同
第一行直接更新article模型。第一個參數(shù)是要更新的模型,第二個參數(shù)是更新的字段。
第二行略有不同,增加了一個前綴參數(shù),我們看視圖生成的代碼 @Html.TextBoxFor(model => model.CommonModel.Title 是帶有前綴CommonModel的。所以這里必須使用前綴來更新視圖。

三、修改文章列表
寫完文章后,就要更改文章列表代碼用來刪除和修改文章。
打開List視圖,修改部分由2處。
1、js腳本部分

script type="text/javascript">
 $("#article_list").datagrid({
  loadMsg: '加載中……',
  pagination:true,
  url: '@Url.Action("JsonList","Article")',
  columns: [[
   { field: 'ModelID', title: 'ID', checkbox: true },
   { field: 'CategoryName', title: '欄目'},
   { field: 'Title', title: '標(biāo)題'},
   { field: 'Inputer', title: '錄入', align: 'right' },
   { field: 'Hits', title: '點擊', align: 'right' },
   { field: 'ReleaseDate', title: '發(fā)布日期', align: 'right', formatter: function (value, row, index) { return jsonDateFormat(value); } },
   { field: 'StatusString', title: '狀態(tài)', width: 100, align: 'right' }
  ]],
  toolbar: '#toolbar',
  idField: 'ModelID',
  onDblClickRow: function (rowIndex, rowData) { window.parent.addTab("修改文章", "@Url.Action("Edit","Article")/" + rowData.ModelID, "icon-page"); }
 });
 //查找
 $("#btn_search").click(function () {
  $("#article_list").datagrid('load', {
   title: $("#textbox_title").val(),
   input: $("#textbox_inputer").val(),
   category: $("#combo_category").combotree('getValue'),
   fromDate: $("#datebox_fromdate").datebox('getValue'),
   toDate: $("#datebox_todate").datebox('getValue')
  });
 });

 //修改事件
 function eidt() {
  var rows = $("#article_list").datagrid("getSelections");
  if (!rows || rows.length  1) {
   $.messager.alert("提示", "請選擇要修改的行!");
   return;
  }
  else if (rows.length != 1) {
   $.messager.alert("提示", "僅能選擇一行!");
   return;
  }
  else {
   window.parent.addTab("修改文章", "@Url.Action("Edit","Article")/" + rows[0].ModelID, "icon-page");
  }
 }
 //刪除
 function del()
 {
  var rows = $("#article_list").datagrid("getSelections");
  if (!rows || rows.length  1) {
   $.messager.alert("提示", "未選擇任何行!");
   return;
  }
  else if (rows.length > 0) {
   $.messager.confirm("確認(rèn)", "您確定要刪除所選行嗎?", function (r) {
    if (r) {
     $.messager.progress();
     $.each(rows, function (index, value) {
      $.ajax({
       type: "post",
       url: "@Url.Action("Delete", "Article")",
       data: { id: value.ModelID },
       async: false,
       success: function (data) {
       }
      });
     });
     $.messager.progress('close');
     //清除選擇行
     rows.length = 0;
     $("#article_list").datagrid('reload');
    }
   });
   return;
  }
 }
/script>

增加了修改方法、刪除方法,在datagrid里添加行雙擊進入修改視圖的方法

onDblClickRow: function (rowIndex, rowData) { window.parent.addTab("修改文章", "@Url.Action("Edit","Article")/" + rowData.ModelID, "icon-page"); }

2、

四、我的文章列表
我的文章列表與全部文章類似,并簡化掉了部分內(nèi)容那個,更加簡單,直接上代碼了
Article控制器中添加

/// summary>
  /// 文章列表Json【注意權(quán)限問題,普通人員是否可以訪問?】
  /// /summary>
  /// param name="title">標(biāo)題/param>
  /// param name="input">錄入/param>
  /// param name="category">欄目/param>
  /// param name="fromDate">日期起/param>
  /// param name="toDate">日期止/param>
  /// param name="pageIndex">頁碼/param>
  /// param name="pageSize">每頁記錄/param>
  /// returns>/returns>
  public ActionResult JsonList(string title, string input, Nullableint> category, NullableDateTime> fromDate, NullableDateTime> toDate, int pageIndex = 1, int pageSize = 20)
  {
   if (category == null) category = 0;
   int _total;
   var _rows = commonModelService.FindPageList(out _total, pageIndex, pageSize, "Article", title, (int)category, input, fromDate, toDate, 0).Select(
    cm => new Ninesky.Web.Models.CommonModelViewModel() 
    { 
     CategoryID = cm.CategoryID,
     CategoryName = cm.Category.Name,
     DefaultPicUrl = cm.DefaultPicUrl,
     Hits = cm.Hits,
     Inputer = cm.Inputer,
     Model = cm.Model,
     ModelID = cm.ModelID,
     ReleaseDate = cm.ReleaseDate,
     Status = cm.Status,
     Title = cm.Title 
    });
   return Json(new { total = _total, rows = _rows.ToList() });
  }

  public ActionResult MyList()
  {
   return View();
  }

  /// summary>
  /// 我的文章列表
  /// /summary>
  /// param name="title">/param>
  /// param name="fromDate">/param>
  /// param name="toDate">/param>
  /// param name="pageIndex">/param>
  /// param name="pageSize">/param>
  /// returns>/returns>
  public ActionResult MyJsonList(string title, NullableDateTime> fromDate, NullableDateTime> toDate, int pageIndex = 1, int pageSize = 20)
  {
   int _total;
   var _rows = commonModelService.FindPageList(out _total, pageIndex, pageSize, "Article", title, 0, string.Empty, fromDate, toDate, 0).Select(
    cm => new Ninesky.Web.Models.CommonModelViewModel()
    {
     CategoryID = cm.CategoryID,
     CategoryName = cm.Category.Name,
     DefaultPicUrl = cm.DefaultPicUrl,
     Hits = cm.Hits,
     Inputer = cm.Inputer,
     Model = cm.Model,
     ModelID = cm.ModelID,
     ReleaseDate = cm.ReleaseDate,
     Status = cm.Status,
     Title = cm.Title
    });
   return Json(new { total = _total, rows = _rows.ToList() }, JsonRequestBehavior.AllowGet);
  }
為MyList右鍵添加視圖
div id="toolbar">
 div>
  a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true" onclick="eidt()">修改/a>
  a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="del()">刪除/a>
  a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-reload',plain:true" onclick="$('#article_list').datagrid('reload');">刷新/a>
 /div>
 div class="form-inline">
  label>標(biāo)題/label> input id="textbox_title" class="input-easyui" style="width:280px" />
  label>添加日期/label>
  input id="datebox_fromdate" type="datetime" class="easyui-datebox" style="width:120px" /> -
  input id="datebox_todate" type="datetime" class="easyui-datebox" style="width:120px; " />
  a href="#" id="btn_search" data-options="iconCls:'icon-search'" class="easyui-linkbutton">查詢/a>
 /div>

/div>
table id="article_list">/table>
script src="~/Scripts/Common.js">/script>
script type="text/javascript">
 $("#article_list").datagrid({
  loadMsg: '加載中……',
  pagination:true,
  url: '@Url.Action("MyJsonList", "Article")',
  columns: [[
   { field: 'ModelID', title: 'ID', checkbox: true },
   { field: 'CategoryName', title: '欄目'},
   { field: 'Title', title: '標(biāo)題'},
   { field: 'Inputer', title: '錄入', align: 'right' },
   { field: 'Hits', title: '點擊', align: 'right' },
   { field: 'ReleaseDate', title: '發(fā)布日期', align: 'right', formatter: function (value, row, index) { return jsonDateFormat(value); } },
   { field: 'StatusString', title: '狀態(tài)', width: 100, align: 'right' }
  ]],
  toolbar: '#toolbar',
  idField: 'ModelID',
  onDblClickRow: function (rowIndex, rowData) { window.parent.addTab("修改文章", "@Url.Action("Edit","Article")/" + rowData.ModelID, "icon-page"); }
 });
 //查找
 $("#btn_search").click(function () {
  $("#article_list").datagrid('load', {
   title: $("#textbox_title").val(),
   fromDate: $("#datebox_fromdate").datebox('getValue'),
   toDate: $("#datebox_todate").datebox('getValue')
  });
 });

 //修改事件
 function eidt() {
  var rows = $("#article_list").datagrid("getSelections");
  if (!rows || rows.length  1) {
   $.messager.alert("提示", "請選擇要修改的行!");
   return;
  }
  else if (rows.length != 1) {
   $.messager.alert("提示", "僅能選擇一行!");
   return;
  }
  else {
   window.parent.addTab("修改文章", "@Url.Action("Edit","Article")/" + rows[0].ModelID, "icon-page");
  }
 }
 //刪除
 function del()
 {
  var rows = $("#article_list").datagrid("getSelections");
  if (!rows || rows.length  1) {
   $.messager.alert("提示", "未選擇任何行!");
   return;
  }
  else if (rows.length > 0) {
   $.messager.confirm("確認(rèn)", "您確定要刪除所選行嗎?", function (r) {
    if (r) {
     $.messager.progress();
     $.each(rows, function (index, value) {
      $.ajax({
       type: "post",
       url: "@Url.Action("Delete", "Article")",
       data: { id: value.ModelID },
       async: false,
       success: function (data) {
       }
      });
     });
     $.messager.progress('close');
     //清除選擇行
     rows.length = 0;
     $("#article_list").datagrid('reload');
    }
   });
   return;
  }
 }
/script>

要注意的是刪除文章時刪除的次序,修改文章時TryUpdateModel的使用,希望本文對大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:
  • ASP.NET MVC5網(wǎng)站開發(fā)管理列表、回復(fù)及刪除(十三)
  • ASP.NET MVC5網(wǎng)站開發(fā)我的咨詢列表及添加咨詢(十二)
  • ASP.NET MVC5網(wǎng)站開發(fā)添加文章(八)
  • ASP.NET MVC5網(wǎng)站開發(fā)文章管理架構(gòu)(七)
  • ASP.NET MVC5網(wǎng)站開發(fā)用戶修改資料和密碼(六)
  • ASP.NET MVC5網(wǎng)站開發(fā)用戶登錄、注銷(五)
  • ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)
  • ASP.NET MVC5網(wǎng)站開發(fā)項目框架(二)
  • ASP.NET MVC5網(wǎng)站開發(fā)概述(一)
  • MVC4制作網(wǎng)站教程第三章 刪除用戶組操作3.4

標(biāo)簽:衢州 汕尾 南寧 青海 洛陽 贛州 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)》,本文關(guān)鍵詞  ASP.NET,MVC5,網(wǎng)站開發(fā),修改,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP.NET MVC5網(wǎng)站開發(fā)修改及刪除文章(十)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精品国产第一综合99久久| 亚洲色婷婷一区二区三区| 中文字幕欧美日韩在线不卡| 玖玖玖精品中文字幕| 奇米成人av国产一区二区三区| 黄色av免费在线| 好吊妞这里只有精品| 日本丰满www色| 色天天综合狠狠色| 一级毛片免费高清中文字幕久久网| 国产午夜精品在线| 精品亚洲综合| 日韩最新中文字幕电影免费看| 亚洲色图丝袜美腿| 无码人妻丰满熟妇区96| 欧美人妇做爰xxxⅹ性高电影| 日韩电影免费一区| 日韩美女视频免费看| 日韩成人av一区二区| 黄色三及免费看| 在线观看的av| 欧美一卡2卡三卡4卡5免费| 国产不卡av在线免费观看| 国产精品亚洲аv天堂网| 天堂成人免费av电影一区| 国产精品二区三区四区| 日韩色性视频| 激情六月综合| 蜜臀av一区二区在线免费观看| 欧美黑人性视频| 好吊一区二区三区视频| 一区二区三区激情| 亚洲午夜视频| 男女啪啪无遮挡| 国产在线视频网| 99热这里只有精品8| 欧美精品99久久久| 欧美又大又硬又粗bbbbb| 夜夜夜精品看看| 久久精品视频免费在线观看| 在线观看免费视频污| 欧美在线高清| 中文字幕中文字幕99| 国产网红在线| 99re6在线| 亚洲a一区二区| 国产精品久久毛片| 免费毛片视频网站| 国产一区日韩一区| 免费在线观看黄色av| 37p粉嫩大胆色噜噜噜| 少妇真人直播免费视频| 亚洲三级免费电影| 在线观看wwwxxxx| 99九九热只有国产精品| 中文字幕久热精品在线视频| 中国女人真人一级毛片| 蜜臀精品一区二区三区在线观看| 欧美一区视久久| 99reav在线| 精品日本一区二区三区| 在线播放一区二区精品产| 人妻精品久久久久中文字幕69| 亚洲精品97久久| 天堂av免费看| 国产欧美中文字幕| 中文字幕人妻熟女人妻a片| 日本在线一级片| 精品久久国产精品| 精品资源在线看| av亚洲一区二区三区| 麻豆av在线播放| 亚洲第一男人av| 欧美日韩精品一区二区| 成人免费在线视频网址| 国产97色在线|日韩| 国产乱码一区二区三区| 女生裸体免费视频| 精品少妇无遮挡毛片| 涩涩日韩在线| 日韩久久久久久久久| 欧美精品久久久久久久多人混战| 中文字幕精品一区二区精品| 激情综合网五月婷婷| 成人不卡视频| 野外做受又硬又粗又大视频√| 中文字幕一区二区三区四区不卡| 二区中文字幕| 波多野结衣中文字幕在线| 麻豆精品一区二区三区视频| 国产一区高清| 国产精品毛片va一区二区三区| 国产情侣呻吟对白高潮| 天天干天天插天天操| 午夜久久久久久| 一区两区小视频| 少妇真人直播免费视频| 国产又色又爽又高潮免费| 色综合狠狠操| 50路60路老熟妇啪啪| 成人爽a毛片一区二区免费| 黄网站app在线观看下载视频大全官网| 精品少妇一区二区三区在线| 给我看免费高清在线观看| 国产精品久久久久久久久免费桃花| 久色视频在线观看| 久久在线视频精品| 久久久久久久久久伊人| 992tv在线影院| 亚洲大黄网站| 亚洲精品成人久久电影| 高清视频一区二区三区四区| 国产精品久久精品日日| 91成人在线| 精品国产一区二区三区在线| 在线成人av| 亚洲一二三四久久| 久久久av一区| 国产精品久久久久久久99| 欧美午夜精品久久久久久人妖| 欧美风狂大伦交xxxx| 久久精品丝袜高跟鞋| 国产69精品久久久久9999| 国产日韩欧美综合一区| 欧美日韩二三区| 日韩精品首页| 国产69久久| 99免费精品在线观看| www.四虎影视.com| 国产女人被狂躁到高潮小说| 欧美激情亚洲视频| rebdb初裸写真在线观看| 国产在线黄色片| 爱情电影网av一区二区| 亚洲国产你懂的| 欧美这里有精品| 日本一二三不卡视频| 亚洲黄色a级片| 欧美亚日韩国产aⅴ精品中极品| 国产精品扒开腿做爽爽爽视频软件| wwwww在线观看免费视频| chinese叫床对白videos| 黄色av小说在线观看| 天天射成人网| 97国产真实伦对白精彩视频8| 欧美成人精品网站| 成人a级免费视频| 欧美国产一级| 白丝女仆被免费网站| 日韩精品专区| 一级黄色免费视频| 日本一区二区视频在线观看| 黄色大片免费看| 国产尤物在线播放| 麻豆久久久久久久| 欧美精品momsxxx| 国产精品久久久久永久免费观看| 一个色综合导航| 久久夜色精品国产欧美乱极品| 日本精品一区在线| 亚洲影院免费观看| 精品96久久久久久中文字幕无| 最新国产在线拍揄自揄视频| 最新亚洲人成网站在线观看| 熟妇人妻久久中文字幕| 888奇米影视| 最新版sss视频在线| 欧美另类老女人| 日韩精品免费一区二区三区竹菊| av影片在线| 国产va在线观看| 九九在线观看免费视频| 国产成人免费在线观看不卡| 免费中文字幕在线观看| 尤物yw午夜国产精品视频| 精品美女久久久久| 亚洲天堂网在线观看| 色综合久久久久无码专区| 超薄肉色丝袜足j调教99| 亚洲亚洲免费| 中文字幕在线免费看线人| 欧美男同视频网| 精品熟妇无码av免费久久| 欧美日韩美女在线观看| 天天在线免费视频| 日韩影视精品| 精品日韩在线视频| 青青草原av在线播放| av电影在线观看完整版一区二区| 欧美国产第二页| 污污视频在线看| 日韩欧美一区二区三区在线视频| 综合激情亚洲| 黄色片免费观看视频| 欧美高清www午色夜在线视频| 97久久人人超碰| 男人天堂免费视频| 不要播放器的av网站| 久久免费99精品久久久久久| 人人澡人人添人人爽一区二区| 成人在线电影网| 国产v在线观看| 欧美精品videossex少妇| 成年人视频网站| 两女双腿交缠激烈磨豆腐| 国产激情视频一区| 亚洲第一天堂无码专区| 酒色婷婷桃色成人免费av网| 国产欧美日韩免费观看| 国产乱视频在线观看播放| 天堂av在线一区| 91在线播放国产| 欧美亚洲丝袜传媒另类| 久久婷婷成人综合色| 国产成人精品a视频一区www| avav免费在线观看| 中文字幕2019第三页| 欧美黄在线观看| 国内不卡一区二区三区| 欧美极品videos大乳护士| 亚洲 另类 春色 国产| 国产伦精品一区二区三区妓女下载| 影音先锋中文字幕在线视频| 亚洲专区免费| 日韩av专区| 久久精品国产精品亚洲毛片| 国产女人18水真多18精品一级做| 亚洲国产精品自拍视频| 一个人免费观看在线视频www| 欧美一区二区人人喊爽| 欧美午夜片在线观看| 神宫寺奈绪一区二区三区| 一区久久精品| 97久久视频| 欧美精品九九99久久| 亚洲制服丝袜av| 91久色国产| 毛片av中文字幕一区二区| 2019男人天堂| 在线精品国产| 欧美性猛交xxxx乱大交| 国产精品久久999| 日韩一区在线视频| 美国黄色小视频| 卡通动漫亚洲综合| 欧美成人免费全部观看天天性色| 成人欧美日韩| 亚洲va国产天堂va久久en| 青青国产在线| 久久久久亚洲av片无码下载蜜桃| eeuss影院18www免费| 中文字幕一二三四区| 91亚洲国产成人精品性色| 欧美日韩和欧美的一区二区| 精品无人区一区二区| 超碰国产在线观看| 欧美性猛交xxxxx少妇| 91亚洲人电影| 成人av中文| 午夜激情在线观看| 免费在线一区二区三区| 欧美高清性hdvideosex| 日韩欧美视频第二区| 欧美日韩国产专区| 综合分类小说区另类春色亚洲小说欧美| 亚洲黄色免费在线观看| jizzjizz免费| 69sex久久精品国产麻豆| 69xxxx欧美| 日韩中字在线观看| 警花av一区二区三区| 日韩视频免费观看高清完整版在线观看| 亚洲www免费| 国产日韩亚洲欧美在线| 亚州欧美一区三区三区在线| 91亚洲午夜精品久久久久久| 国产精品久久久久久久久免费看| 久久久久久九九九九九| 99久久免费国产精精品| 国产亚洲成av人片在线观黄桃| 日日夜夜天天操| wwww在线观看免费视频| 天堂中文在线资| 1024视频在线| 久久亚洲成人精品| 久久国产精品久久久久| 57pao精品| 欧美v亚洲v| 亚洲欧美偷拍三级| 麻豆精品蜜桃一区二区三区| 欧美伦理影院| 夜夜嗨一区二区| 欧美精品激情在线| 桃子视频成人app| 久久人人爽人人爽人人片av免费| 国产视频在线观看一区二区三区| 精品亚洲二区| 欧美一区二区在线观看| 精品久久久久久综合日本欧美| 亚洲剧情一区二区| 欧美日韩精选| 中文字幕一区久久| 国产老头老太做爰视频| 国产第一页在线播放| 男女啪啪在线观看| 久久机热这里只有精品| 精品久久中文| 亚洲经典在线| 97成人在线视频| 五月激情综合婷婷| 99久久久久久| 国产又粗又猛又黄| 欧美影视资讯| 永久免费网站视频在线观看| 色综合久久久久久久| 日韩精品999| 在线播放 亚洲| 男女性色大片免费观看一区二区| 久久婷婷国产综合国色天香| 国产精品一区二区免费在线观看| 97成人精品区在线播放| 欧美**室bdsm视频| 另类av导航| 日韩毛片免费观看| 98精品国产高清在线xxxx天堂| 性感美女激情视频在线观看| 自拍偷拍一区| 日韩av加勒比|