日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABP入门系列(5)——展现层实现增删改查

發(fā)布時間:2023/12/10 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABP入门系列(5)——展现层实现增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ABP入門系列目錄——學(xué)習(xí)Abp框架之實(shí)操演練
源碼路徑:Github-LearningMpaAbp


這一章節(jié)將通過完善Controller、View、ViewModel,來實(shí)現(xiàn)展現(xiàn)層的增刪改查。最終實(shí)現(xiàn)效果如下圖:

展現(xiàn)層最終效果

一、定義Controller

ABP對ASP.NET MVC Controllers進(jìn)行了集成,通過引入Abp.Web.Mvc命名空間,創(chuàng)建Controller繼承自AbpController, 我們即可使用ABP附加給我們的以下強(qiáng)大功能:

  • 本地化
  • 異常處理
  • 對返回的JsonResult進(jìn)行包裝
  • 審計日志
  • 權(quán)限認(rèn)證([AbpMvcAuthorize]特性)
  • 工作單元(默認(rèn)未開啟,通過添加[UnitOfWork]開啟)

1,創(chuàng)建TasksController繼承自AbpController

通過構(gòu)造函數(shù)注入對應(yīng)用服務(wù)的依賴。

?

[AbpMvcAuthorize]public class TasksController : AbpController{private readonly ITaskAppService _taskAppService;private readonly IUserAppService _userAppService;public TasksController(ITaskAppService taskAppService, IUserAppService userAppService){_taskAppService = taskAppService;_userAppService = userAppService;} }

二、創(chuàng)建列表展示分部視圖(_List.cshtml)

在分部視圖中,我們通過循環(huán)遍歷,輸出任務(wù)清單。

?

@model IEnumerable<LearningMpaAbp.Tasks.Dtos.TaskDto> <div><ul class="list-group">@foreach (var task in Model){<li class="list-group-item"><div class="btn-group pull-right"><button type="button" class="btn btn-info" onclick="editTask(@task.Id);">Edit</button><button type="button" class="btn btn-success" onclick="deleteTask(@task.Id);">Delete</button></div><div class="media"><a class="media-left" href="#"><i class="fa @task.GetTaskLable() fa-3x"></i></a><div class="media-body"><h4 class="media-heading">@task.Title</h4><p class="text-info">@task.AssignedPersonName</p><span class="text-muted">@task.CreationTime.ToString("yyyy-MM-dd HH:mm:ss")</span></div></div></li>}</ul> </div>

列表顯示效果

三,創(chuàng)建新增分部視圖(_CreateTask.cshtml)

為了好的用戶體驗(yàn),我們采用異步加載的方式來實(shí)現(xiàn)任務(wù)的創(chuàng)建。

1,引入js文件

使用異步提交需要引入jquery.validate.unobtrusive.min.js和jquery.unobtrusive-ajax.min.js,其中jquery.unobtrusive-ajax.min.js,需要通過Nuget安裝微軟的Microsoft.jQuery.Unobtrusive.Ajax包獲取。
然后通過捆綁一同引入到視圖中。打開App_Start文件夾下的BundleConfig.cs,添加以下代碼:

?

bundles.Add(new ScriptBundle("~/Bundles/unobtrusive/js").Include("~/Scripts/jquery.validate.unobtrusive.min.js","~/Scripts/jquery.unobtrusive-ajax.min.js"));

找到Views/Shared/_Layout.cshtml,添加對捆綁的js引用。

?

@Scripts.Render("~/Bundles/vendor/js/bottom") @Scripts.Render("~/Bundles/js") //在此處添加下面一行代碼 @Scripts.Render("~/Bundles/unobtrusive/js")

2,創(chuàng)建分部視圖

其中用到了Bootstrap-Modal,Ajax.BeginForm,對此不了解的可以參考
Ajax.BeginForm()知多少
Bootstrap-Modal的用法介紹

該P(yáng)artial View綁定CreateTaskInput模型。最終_CreateTask.cshtml代碼如下:

?

@model LearningMpaAbp.Tasks.Dtos.CreateTaskInput@{ViewBag.Title = "Create"; } <div class="modal fade" id="add" tabindex="-1" role="dialog" aria-labelledby="createTask" data-backdrop="static"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><h4 class="modal-title" id="myModalLabel">Create Task</h4></div><div class="modal-body" id="modalContent">@using (Ajax.BeginForm("Create", "Tasks", new AjaxOptions(){UpdateTargetId = "taskList",InsertionMode = InsertionMode.Replace,OnBegin = "beginPost('#add')",OnSuccess = "hideForm('#add')",OnFailure = "errorPost(xhr, status, error,'#add')"})){@Html.AntiForgeryToken()<div class="form-horizontal"><h4>Task</h4><hr />@Html.ValidationSummary(true, "", new { @class = "text-danger" })<div class="form-group">@Html.LabelFor(model => model.AssignedPersonId, "AssignedPersonId", htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.DropDownList("AssignedPersonId", null, htmlAttributes: new { @class = "form-control" })@Html.ValidationMessageFor(model => model.AssignedPersonId, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.Title, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })@Html.ValidationMessageFor(model => model.Title, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Description, new { htmlAttributes = new { @class = "form-control" } })@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.State, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EnumDropDownListFor(model => model.State, htmlAttributes: new { @class = "form-control" })@Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" })</div></div><div class="form-group"><div class="col-md-offset-2 col-md-10"><button type="submit" class="btn btn-default">Create</button></div></div></div>}</div></div></div> </div>

對應(yīng)Controller代碼:

?

[ChildActionOnly] public PartialViewResult Create() {var userList = _userAppService.GetUsers();ViewBag.AssignedPersonId = new SelectList(userList.Items, "Id", "Name");return PartialView("_CreateTask"); }[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(CreateTaskInput task) {var id = _taskAppService.CreateTask(task);var input = new GetTasksInput();var output = _taskAppService.GetTasks(input);return PartialView("_List", output.Tasks); }

四、創(chuàng)建更新分部視圖(_EditTask.cshtml)

同樣,該視圖也采用異步更新方式,也采用Bootstrap-Modal,Ajax.BeginForm()技術(shù)。該P(yáng)artial View綁定UpdateTaskInput模型。

?

@model LearningMpaAbp.Tasks.Dtos.UpdateTaskInput @{ViewBag.Title = "Edit"; }<div class="modal fade" id="editTask" tabindex="-1" role="dialog" aria-labelledby="editTask" data-backdrop="static"><div class="modal-dialog" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button><h4 class="modal-title" id="myModalLabel">Edit Task</h4></div><div class="modal-body" id="modalContent">@using (Ajax.BeginForm("Edit", "Tasks", new AjaxOptions(){UpdateTargetId = "taskList",InsertionMode = InsertionMode.Replace,OnBegin = "beginPost('#editTask')",OnSuccess = "hideForm('#editTask')"})){@Html.AntiForgeryToken()<div class="form-horizontal"><h4>Task</h4><hr />@Html.ValidationSummary(true, "", new { @class = "text-danger" })@Html.HiddenFor(model => model.Id)<div class="form-group">@Html.LabelFor(model => model.AssignedPersonId, "AssignedPersonId", htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.DropDownList("AssignedPersonId", null, htmlAttributes: new { @class = "form-control" })@Html.ValidationMessageFor(model => model.AssignedPersonId, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.Title, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })@Html.ValidationMessageFor(model => model.Title, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Description, new { htmlAttributes = new { @class = "form-control" } })@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })</div></div><div class="form-group">@Html.LabelFor(model => model.State, htmlAttributes: new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EnumDropDownListFor(model => model.State, htmlAttributes: new { @class = "form-control" })@Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" })</div></div><div class="form-group"><div class="col-md-offset-2 col-md-10"><input type="submit" value="Save" class="btn btn-default" /></div></div></div>}</div></div></div> </div> <script type="text/javascript">//該段代碼十分重要,確保異步調(diào)用后jquery能正確執(zhí)行驗(yàn)證邏輯$(function () {//allow validation framework to parse DOM$.validator.unobtrusive.parse('form');}); </script>

后臺代碼:

?

public PartialViewResult Edit(int id) {var task = _taskAppService.GetTaskById(id);var updateTaskDto = AutoMapper.Mapper.Map<UpdateTaskInput>(task);var userList = _userAppService.GetUsers();ViewBag.AssignedPersonId = new SelectList(userList.Items, "Id", "Name", updateTaskDto.AssignedPersonId);return PartialView("_EditTask", updateTaskDto); }[HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(UpdateTaskInput updateTaskDto) {_taskAppService.UpdateTask(updateTaskDto);var input = new GetTasksInput();var output = _taskAppService.GetTasks(input);return PartialView("_List", output.Tasks); }

五,創(chuàng)建Index視圖

在首頁中,我們一般會用來展示列表,并通過彈出模態(tài)框的方式來進(jìn)行新增更新刪除。為了使用ASP.NET MVC強(qiáng)視圖帶給我們的好處(模型綁定、輸入校驗(yàn)等等),我們需要創(chuàng)建一個ViewModel來進(jìn)行模型綁定。因?yàn)锳bp提倡為每個不同的應(yīng)用服務(wù)提供不同的Dto進(jìn)行數(shù)據(jù)交互,新增對應(yīng)CreateTaskInput,更新對應(yīng)UpdateTaskInput,展示對應(yīng)TaskDto。那我們創(chuàng)建的ViewModel就需要包含這幾個模型,方可在一個視圖中完成多個模型的綁定。

1,創(chuàng)建視圖模型(IndexViewModel)

?

namespace LearningMpaAbp.Web.Models.Tasks {public class IndexViewModel{/// <summary>/// 用來進(jìn)行綁定列表過濾狀態(tài)/// </summary>public TaskState? SelectedTaskState { get; set; }/// <summary>/// 列表展示/// </summary>public IReadOnlyList<TaskDto> Tasks { get; }/// <summary>/// 創(chuàng)建任務(wù)模型/// </summary>public CreateTaskInput CreateTaskInput { get; set; }/// <summary>/// 更新任務(wù)模型/// </summary>public UpdateTaskInput UpdateTaskInput { get; set; }public IndexViewModel(IReadOnlyList<TaskDto> items){Tasks = items;}/// <summary>/// 用于過濾下拉框的綁定/// </summary>/// <returns></returns>public List<SelectListItem> GetTaskStateSelectListItems(){var list=new List<SelectListItem>(){new SelectListItem(){Text = "AllTasks",Value = "",Selected = SelectedTaskState==null}};list.AddRange(Enum.GetValues(typeof(TaskState)).Cast<TaskState>().Select(state=>new SelectListItem(){Text = $"TaskState_{state}",Value = state.ToString(),Selected = state==SelectedTaskState}));return list;}} }

2,創(chuàng)建視圖

Index視圖,通過加載Partial View的形式,將列表、新增視圖一次性加載進(jìn)來。

?

@using Abp.Web.Mvc.Extensions @model LearningMpaAbp.Web.Models.Tasks.IndexViewModel@{ViewBag.Title = L("TaskList");ViewBag.ActiveMenu = "TaskList"; //Matches with the menu name in SimpleTaskAppNavigationProvider to highlight the menu item } @section scripts{@Html.IncludeScript("~/Views/Tasks/index.js"); } <h2>@L("TaskList")<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#add">Create Task</button><a class="btn btn-primary" data-toggle="modal" href="@Url.Action("RemoteCreate")" data-target="#modal" role="button">(Create Task)使用Remote方式調(diào)用Modal進(jìn)行展現(xiàn)</a><!--任務(wù)清單按照狀態(tài)過濾的下拉框--><span class="pull-right">@Html.DropDownListFor(model => model.SelectedTaskState,Model.GetTaskStateSelectListItems(),new{@class = "form-control select2",id = "TaskStateCombobox"})</span> </h2><!--任務(wù)清單展示--> <div class="row" id="taskList">@{ Html.RenderPartial("_List", Model.Tasks); } </div><!--通過初始加載頁面的時候提前將創(chuàng)建任務(wù)模態(tài)框加載進(jìn)來--> @Html.Action("Create")<!--編輯任務(wù)模態(tài)框通過ajax動態(tài)填充到此div中--> <div id="edit"></div><!--Remote方式彈出創(chuàng)建任務(wù)模態(tài)框--> <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="createTask" data-backdrop="static"><div class="modal-dialog" role="document"><div class="modal-content"></div></div> </div>

3,Remote方式創(chuàng)建任務(wù)講解

Remote方式就是,點(diǎn)擊按鈕的時候去加載創(chuàng)建任務(wù)的PartialView到指定的div中。而我們代碼中另一種方式是通過@Html.Action("Create")的方式,在加載Index的視圖的作為子視圖同步加載了進(jìn)來。
感興趣的同學(xué)自行查看源碼,不再講解。

?

<a class="btn btn-primary" data-toggle="modal" href="@Url.Action("RemoteCreate")" data-target="#modal" role="button">(Create Task)使用Remote方式調(diào)用Modal進(jìn)行展現(xiàn)</a><!--Remote方式彈出創(chuàng)建任務(wù)模態(tài)框--> <div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="createTask" data-backdrop="static"><div class="modal-dialog" role="document"><div class="modal-content"></div></div> </div>

4,后臺代碼

?

public ActionResult Index(GetTasksInput input){var output = _taskAppService.GetTasks(input);var model = new IndexViewModel(output.Tasks){SelectedTaskState = input.State};return View(model);}

5,js代碼(index.js)

?

var taskService = abp.services.app.task;(function ($) {$(function () {var $taskStateCombobox = $('#TaskStateCombobox');$taskStateCombobox.change(function () {getTaskList();});var $modal = $(".modal");//顯示modal時,光標(biāo)顯示在第一個輸入框$modal.on('shown.bs.modal',function () {$modal.find('input:not([type=hidden]):first').focus();});}); })(jQuery);//異步開始提交時,顯示遮罩層 function beginPost(modalId) {var $modal = $(modalId);abp.ui.setBusy($modal); }//異步開始提交結(jié)束后,隱藏遮罩層并清空Form function hideForm(modalId) {var $modal = $(modalId);var $form = $modal.find("form");abp.ui.clearBusy($modal);$modal.modal("hide");//創(chuàng)建成功后,要清空form表單$form[0].reset(); }//處理異步提交異常 function errorPost(xhr, status, error, modalId) {if (error.length>0) {abp.notify.error('Something is going wrong, please retry again later!');var $modal = $(modalId);abp.ui.clearBusy($modal);} }function editTask(id) {abp.ajax({url: "/tasks/edit",data: { "id": id },type: "GET",dataType: "html"}).done(function (data) {$("#edit").html(data);$("#editTask").modal("show");}).fail(function (data) {abp.notify.error('Something is wrong!');}); }function deleteTask(id) {abp.message.confirm("是否刪除Id為" + id + "的任務(wù)信息",function (isConfirmed) {if (isConfirmed) {taskService.deleteTask(id).done(function () {abp.notify.info("刪除任務(wù)成功!");getTaskList();});}});}function getTaskList() {var $taskStateCombobox = $('#TaskStateCombobox');var url = '/Tasks/GetList?state=' + $taskStateCombobox.val();abp.ajax({url: url,type: "GET",dataType: "html"}).done(function (data) {$("#taskList").html(data);}); }

js代碼中處理了Ajax回調(diào)函數(shù),以及任務(wù)狀態(tài)過濾下拉框更新事件,編輯、刪除任務(wù)代碼。其中g(shù)etTaskList()函數(shù)是用來異步刷新列表,對應(yīng)調(diào)用的GetList()Action的后臺代碼如下:

?

public PartialViewResult GetList(GetTasksInput input) {var output = _taskAppService.GetTasks(input);return PartialView("_List", output.Tasks); }

六、總結(jié)

至此,完成了任務(wù)的增刪改查。展現(xiàn)層主要用到了Asp.net mvc的強(qiáng)類型視圖、Bootstrap-Modal、Ajax異步提交技術(shù)。
其中需要注意的是,在異步加載表單時,需要添加以下js代碼,jquery方能進(jìn)行前端驗(yàn)證。

?

<script type="text/javascript">$(function () {//allow validation framework to parse DOM$.validator.unobtrusive.parse('form');}); </script>

源碼已上傳至Github-LearningMpaAbp,可自行參考。



作者:圣杰
鏈接:https://www.jianshu.com/p/620c20fa511b
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

總結(jié)

以上是生活随笔為你收集整理的ABP入门系列(5)——展现层实现增删改查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

97精品视频在线 | 午夜手机电影 | 天天操天天爽天天干 | 国产视频精品久久 | 国内精品久久久精品电影院 | 91chinesexxx | 精品福利视频在线 | 91麻豆精品91久久久久同性 | www五月天com | 国产精品久久久久国产精品日日 | www.黄色 | 日本久久久精品视频 | 日韩毛片在线免费观看 | 超碰97人人在线 | 在线a人v观看视频 | 国产午夜精品一区二区三区在线观看 | 婷婷六月久久 | 深爱激情av| 亚洲精品观看 | 国产精品短视频 | 99色免费视频 | 亚洲九九影院 | 久草视频看看 | 欧美日韩国产精品一区二区亚洲 | 国产亚洲日 | 97国产大学生情侣白嫩酒店 | 在线影视 一区 二区 三区 | 免费高清在线一区 | 久精品视频 | 亚洲永久av| 西西444www大胆无视频 | 欧美国产大片 | av高清免费在线 | 久久视频国产精品免费视频在线 | 91正在播放 | 在线观看91久久久久久 | 2019天天干天天色 | 色多多污污在线观看 | 亚洲理论电影 | 中文字幕 二区 | www.狠狠色 | 亚洲视频免费在线观看 | 中文字幕精品一区二区三区电影 | 国产视频在线免费 | 国产无遮挡猛进猛出免费软件 | 欧美黄色免费 | 在线电影日韩 | 日日夜夜亚洲 | 在线一级片 | 日本在线观看中文字幕无线观看 | 免费福利视频网 | 日韩午夜av | 午夜精品一区二区三区四区 | 99在线精品观看 | 国内精品久久久久影院男同志 | 久久超级碰视频 | 夜夜视频欧洲 | 三级黄色在线 | 天天鲁天天干天天射 | 国产日产在线观看 | 亚洲精品免费在线视频 | 国产三级香港三韩国三级 | 日本在线视频一区二区三区 | 91久久国产自产拍夜夜嗨 | www.午夜色.com | 久久国产精品久久精品国产演员表 | 精品视频在线免费 | www婷婷 | 久久99精品久久只有精品 | 国产精品久久久 | 成人教育av | 99人久久精品视频最新地址 | 亚洲天堂网在线视频观看 | 黄色特级片 | 久久高清av | 亚洲九九精品 | 国产在线视频在线观看 | 韩日色视频| 狠狠操精品 | 色综合激情久久 | 中文字幕亚洲综合久久五月天色无吗'' | 免费观看丰满少妇做爰 | 免费久久视频 | 婷婷丁香激情网 | 成人免费一级 | 国产 日韩 在线 亚洲 字幕 中文 | 激情在线五月天 | www操操 | 欧美日韩免费在线观看视频 | 日韩免费一级电影 | 手机在线看片日韩 | 亚洲蜜桃av | 久久九九免费视频 | 欧美怡红院视频 | 草久久影院 | 亚洲天堂精品视频在线观看 | 手机av永久免费 | 五月婷婷综合激情网 | 久久久精选 | 色www精品视频在线观看 | av不卡网站 | 国产精品欧美久久久久无广告 | 国产日韩中文字幕 | av福利电影 | 播五月综合 | 91精品看片| 少妇性色午夜淫片aaaze | 国产一区二区三区久久久 | 免费视频在线观看网站 | 麻豆91网站| 日韩免费一级电影 | 国产福利精品视频 | 日韩成人黄色 | 中文字幕乱在线伦视频中文字幕乱码在线 | 99国产视频 | 美女网站视频一区 | 久久伊人免费视频 | 午夜精品一区二区三区视频免费看 | 香蕉在线视频观看 | 在线观看av网 | 美女免费视频一区 | 久久蜜臀一区二区三区av | 欧美va天堂va视频va在线 | 午夜黄色大片 | 缴情综合网五月天 | 黄色免费网站下载 | 在线黄色免费av | 欧美一区二区三区在线视频观看 | 欧美日韩综合在线观看 | 亚洲精品视频在线观看免费视频 | 亚洲人在线视频 | 丁香视频全集免费观看 | 日韩大片在线 | 亚洲理论电影网 | 色婷婷精品| 久久电影中文字幕视频 | 国产黄色电影 | 97免费在线观看视频 | 91在线公开视频 | 国产精品无av码在线观看 | 天天狠狠干 | 69精品久久 | 九九一级片 | 麻豆超碰 | 最新av在线免费观看 | 在线国产精品视频 | 欧美日韩性视频在线 | 精品国产一区二区三区蜜臀 | 国产精品99视频 | 玖玖爱国产在线 | 国产精品久久久久一区二区三区 | 国产精品久久久777 成人手机在线视频 | 精品久久久久久久久久久久 | 国产99久久九九精品 | 在线国产91 | 久久久久久久99 | 婷婷综合亚洲 | 成人三级黄色 | 精品久久久久久久久久久久久久久久久久 | 中文字幕国内精品 | 黄色大片视频网站 | 久久人人爽人人爽人人片 | 国产精品久久久久久久久久久久 | 天天干夜夜夜操天 | www.国产视频 | 最近中文字幕免费大全 | 亚洲开心色 | 免费无遮挡动漫网站 | 久久免费的精品国产v∧ | 日本精品视频在线播放 | 97色se| 国产日产亚洲精华av | 欧美日韩国产一二三区 | 婷婷激情影院 | 激情伊人五月天久久综合 | 成人在线免费av | 亚洲人在线 | 不卡av在线播放 | 色中文字幕在线观看 | 日韩高清毛片 | 久久er99热精品一区二区 | 亚洲精品免费在线 | 中文字幕在线观看资源 | 99视频偷窥在线精品国自产拍 | 国产福利小视频在线 | 欧美日韩中 | 久久婷婷国产色一区二区三区 | 欧美日韩网站 | 中文字幕资源网 国产 | 日韩欧美在线高清 | 亚洲情影院 | 国内亚洲精品 | av在线一级| 成人全视频免费观看在线看 | 国产91精品高清一区二区三区 | 欧美日韩免费一区二区 | 亚欧日韩成人h片 | 久久人人爽人人片av | 亚洲成人精品国产 | 国产色综合天天综合网 | 最新中文字幕视频 | 天天干,夜夜操 | 亚洲欧美日韩精品一区二区 | 亚洲 欧洲 国产 日本 综合 | 91成版人在线观看入口 | 天天操天天干天天综合网 | 国产女人40精品一区毛片视频 | 一本—道久久a久久精品蜜桃 | 91视频成人免费 | 在线免费观看一区二区三区 | 九九热视频在线免费观看 | 色婷婷丁香 | 日韩小视频 | 国产主播大尺度精品福利免费 | 天天射天 | 天天色棕合合合合合合 | 免费视频 你懂的 | 久久久久久激情 | 激情视频一区二区三区 | 国产99久久久精品视频 | 久久精品国产一区 | 极品国产91在线网站 | 五月婷婷在线视频观看 | 国产精品96久久久久久吹潮 | 免费看色的网站 | 中文字幕精品三区 | 日韩av高潮 | 97av视频在线观看 | 一区二区三区四区五区在线 | 91视频三区 | 夜夜夜精品 | 正在播放一区 | 福利在线看片 | 欧美精品乱码99久久影院 | 丁香六月在线 | 激情黄色av | 日韩v欧美v日本v亚洲v国产v | 欧美va日韩va| 国产精品成人免费一区久久羞羞 | 中文字幕一区2区3区 | 国产精品igao视频网网址 | 人人躁| 一区二区日韩av | 天堂av免费 | 91精品在线观看视频 | 国产精品久久99精品毛片三a | 国产一区欧美二区 | 成人在线一区二区三区 | 国产精品永久久久久久久www | 国产亚洲婷婷免费 | 91视频午夜 | 色婷婷av一区 | 成人黄色在线观看视频 | 美女网站在线播放 | 天天操天天干天天插 | 精品国产伦一区二区三区观看说明 | 成人综合免费 | 美女一区网站 | 精品高清美女精品国产区 | 天天干天天操天天拍 | 黄色的视频 | 天天曰视频 | 成年人免费在线 | 开心综合网 | 狠狠色丁香婷婷综合基地 | 久草视频免费观 | bbbbb女女女女女bbbbb国产 | 久久久久久久久爱 | 精品久久久影院 | 9999精品视频 | 成年人在线观看 | 91大神dom调教在线观看 | 91传媒激情理伦片 | 一色屋精品视频在线观看 | 最新日韩在线 | 免费观看的av | 在线观看国产高清视频 | 麻豆国产精品视频 | 精品久久久一区二区 | 久久久电影 | 九九热视频在线免费观看 | 在线免费色 | www.超碰97.com | 久草精品视频在线观看 | 日韩一级理论片 | 国产区欧美 | 免费午夜网站 | 中文超碰字幕 | 伊人永久| 超碰人人国产 | 国产精品乱码一区二三区 | 日韩美在线 | 色综合久久88色综合天天6 | 亚洲欧美va| 婷婷视频在线播放 | 天天插天天操天天干 | 91精品视频一区二区三区 | 久久久久久蜜av免费网站 | 国产精品久久久久999 | 久久久精品久久日韩一区综合 | 中文字幕一区二区三区在线播放 | 日本精品一 | 国产一级片久久 | 在线观看日韩视频 | 日韩激情片在线观看 | 99国产精品免费网站 | 久久影院亚洲 | 精品国产一区二区在线 | 日韩中文字幕免费在线观看 | 欧美另类调教 | 国产又粗又猛又黄又爽 | 欧美性色黄 | 日韩久久精品 | 99精品视频在线观看免费 | 91亚洲精品在线 | 最新午夜电影 | 天天操夜夜逼 | 欧美性高跟鞋xxxxhd | 亚洲国产影院av久久久久 | 成人久久精品 | 日韩在线观看你懂得 | 国产黄色播放 | 天天色播 | 欧美日韩亚洲精品在线 | 99精彩视频在线观看免费 | 天天干视频在线 | adn—256中文在线观看 | 天堂av网址| 精品一区 在线 | 久久久久久久久影院 | 亚洲美女在线一区 | 成人av一区二区兰花在线播放 | 国产中文字幕网 | 日韩精品欧美专区 | 91人人爱| 国产精品久久久久久久久久久久冷 | 日韩精品一区二区三区在线视频 | a级片网站 | 精品久久一 | 丁香婷婷久久 | 97av免费视频 | 久久99在线视频 | 91精品国自产在线观看欧美 | 日韩精品久久中文字幕 | 精品国内自产拍在线观看视频 | 视频一区在线免费观看 | 国产 日韩 欧美 自拍 | 亚洲三级av | 国产日韩精品久久 | 午夜精品一区二区三区在线观看 | 69av在线视频| 欧美-第1页-屁屁影院 | 亚洲国产mv | 久草精品电影 | 久久综合九色综合欧美就去吻 | 国产亚洲在 | 91视频黄色 | 欧美一区日韩一区 | 91丨九色丨首页 | 免费看黄20分钟 | 成人黄色大片网站 | 久草在线综合网 | 日韩精品一区二区三区电影 | 色综合久久中文综合久久牛 | 操操操影院| 午夜影院一级 | 在线黄色观看 | 丁香国产视频 | 中文字幕在线观看资源 | 国产手机精品视频 | 特黄免费av| 黄色三级久久 | 色的网站在线观看 | 日本一区二区免费在线观看 | 91精品国产综合久久福利 | 福利网址在线观看 | 波多野结衣久久资源 | 久久久久亚洲天堂 | 日韩理论在线观看 | 欧美精品亚洲精品 | 97超在线| 成人a毛片| 成人av免费在线播放 | 天天干天天怕 | 在线国产日本 | 中文字幕中文字幕中文字幕 | 九九热1 | 99c视频在线 | 色狠狠久久av五月综合 | 丁香婷婷久久久综合精品国产 | 欧美激情另类 | 国产精品白丝av | 亚洲精品www. | 婷婷免费在线视频 | 国产精品成人自产拍在线观看 | 黄色一及电影 | 国产亚洲精品久久久久久电影 | 亚洲片在线观看 | 91最新网址| 一区二区三区四区影院 | 黄色免费在线视频 | 欧美激情综合色综合啪啪五月 | 亚洲精品免费看 | 狠狠做深爱婷婷综合一区 | 成人午夜在线观看 | 中文字幕一区二区三区在线播放 | 日韩精品一区二区三区电影 | 中文国产字幕在线观看 | 亚洲 中文字幕av | 日韩电影在线一区二区 | 伊人久久在线观看 | 天天摸天天操天天爽 | 久久久不卡影院 | 成人黄色在线电影 | 欧美性天天 | 久久国产色 | 在线观看中文 | wwwwwww色| 亚洲免费国产视频 | 在线免费中文字幕 | 国产精品久久久久久妇 | 国产 一区二区三区 在线 | 久久国产一二区 | 亚洲一区尤物 | 久久久久久久av | 美女视频黄免费 | 国产视频一区在线播放 | 中文字幕人成乱码在线观看 | 欧美激情综合五月色丁香 | 天天干天天摸天天操 | www日| 国产成人精品午夜在线播放 | 一区中文字幕电影 | 国产精品都在这里 | 国产91学生粉嫩喷水 | 色中色亚洲 | 国产成人61精品免费看片 | 久久夜色精品国产欧美乱 | a在线播放 | 波多野结衣小视频 | 国产一区成人在线 | 精品国产伦一区二区三区观看体验 | 国产免费作爱视频 | 三级av在线播放 | 天天综合网~永久入口 | 国产乱码精品一区二区三区介绍 | 香蕉看片 | 狠狠狠狠狠操 | 国产精品久久久视频 | 成人免费视频免费观看 | 欧美特一级片 | 国产我不卡 | 国产午夜精品免费一区二区三区视频 | 亚洲国产日韩欧美 | 国产日韩中文字幕在线 | 首页国产精品 | 欧美夫妻性生活电影 | 丁香视频| 日p在线观看 | 日韩精品一卡 | 久久综合狠狠 | 亚洲美女精品 | 久久九九久久九九 | 亚洲一二区视频 | 2023国产精品自产拍在线观看 | 亚洲精品毛片一级91精品 | 久久人人爽人人爽 | 免费在线观看成人小视频 | 视频高清| 亚洲 欧美日韩 国产 中文 | 精品久久国产精品 | 在线观看日本韩国电影 | 国产做aⅴ在线视频播放 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 色国产精品一区在线观看 | 亚洲精品动漫成人3d无尽在线 | 不卡电影免费在线播放一区 | 国产精品国产精品 | 久久精品欧美 | 日韩专区在线 | 亚洲精品中文字幕视频 | 国产精品麻豆一区二区三区 | 国产视频91在线 | 黄色毛片视频免费观看中文 | 24小时日本在线www免费的 | 国产经典 欧美精品 | 欧美日韩在线观看视频 | aaa日本高清在线播放免费观看 | 国产成人精品一区二区三区免费 | 国产精品久久视频 | 中文字幕在线观看三区 | 亚州av一区 | 日本高清中文字幕有码在线 | 在线观看av的网站 | 欧美日韩亚洲在线观看 | 干天天 | 国产一级性生活视频 | 欧美日韩国产欧美 | 久99视频| 国产在线无 | 久久久精品久久 | 丁香一区二区 | 亚洲美女久久 | www夜夜| 欧美天天综合 | 国产精品一区二区av | 亚洲人在线视频 | 99视频免费在线观看 | 在线看黄色av| 91一区啪爱嗯打偷拍欧美 | 亚洲激情影院 | 极品中文字幕 | 欧美成人精品xxx | 精品免费久久久久久 | 午夜a区 | 国产精品美女在线观看 | 欧美成年人在线视频 | 国产精品自在线拍国产 | 国产免费亚洲 | 亚洲播放一区 | 精品国产午夜 | 天天综合在线观看 | 国内精品久久久久久久影视麻豆 | 久久99国产精品久久99 | 亚洲综合一区二区精品导航 | 91视频在线免费下载 | 一区二区视频免费在线观看 | 日日操日日插 | 91麻豆精品久久久久久 | 美腿丝袜一区二区三区 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 国产999视频 | .精品久久久麻豆国产精品 亚洲va欧美 | 色婷婷狠狠五月综合天色拍 | 国产精品乱码一区二三区 | 国产欧美精品一区二区三区 | 毛片美女网站 | 天天爱天天操天天干 | 九色在线视频 | 国产一区二区三区免费在线 | 日本中文乱码卡一卡二新区 | 亚洲美女精品 | 日韩免费网址 | 国产又粗又长的视频 | 99这里只有久久精品视频 | 久久99久久99精品免视看婷婷 | 久久国精品 | av大片免费 | 五月婷婷操 | 久久综合日 | av片在线看 | 精品91在线 | 久久亚洲人 | 99在线精品观看 | 久草视频免费看 | 国内精品久久久久久久久久久 | 99视频偷窥在线精品国自产拍 | 国产精品国产三级国产不产一地 | 超碰人人草人人 | 国产精品美女久久 | 69xxxx欧美| 国产很黄很色的视频 | 久久免费视频3 | 亚州av一区| 久久理论视频 | 色开心| 伊人导航 | 中文字幕的 | 精品国产一二三 | 在线视频中文字幕一区 | 日韩成人高清在线 | 国产精品粉嫩 | 91色偷偷 | 91xav | 亚洲国产精品第一区二区 | 人人爱人人做人人爽 | 奇米影视在线99精品 | 超级碰碰碰碰 | 91精品国产91久久久久福利 | 久久国产手机看片 | 午夜精品一区二区三区在线播放 | 国产视频精选 | 日日夜夜操av | 免费观看丰满少妇做爰 | 日韩av免费一区二区 | 日韩毛片一区 | ww亚洲ww亚在线观看 | 欧美日韩一区二区视频在线观看 | 97热视频 | www.久久视频 | 99爱在线 | 亚洲乱码国产乱码精品天美传媒 | 97天天综合网 | 国产精品手机看片 | 狠狠久久伊人 | 日韩精品不卡 | av电影中文字幕 | 首页国产精品 | 射射射av | 毛片a级片 | 色九九影院 | 免费看国产a | 看av免费网站 | 97超碰色偷偷 | 国产中文伊人 | 天堂av一区二区 | 久久伦理影院 | 在线av资源 | 91干干干| 色的网站在线观看 | 国产精品久久久久久久久久 | 精精国产xxxx视频在线播放 | 国产精品麻豆视频 | 中文字幕第 | 在线精品视频免费播放 | 中文字幕一区在线 | 免费观看一区 | 久色小说 | 99久久精品国产观看 | 国产免费精彩视频 | 久久99久国产精品黄毛片入口 | 国内精品免费久久影院 | 亚洲艳情 | 超碰在线资源 | 最新av在线网址 | 国产精品video| 91在线国内视频 | 日日夜夜精品视频天天综合网 | 中文字幕123区 | 91成人精品一区在线播放69 | 911香蕉视频 | 在线欧美中文字幕 | 成人不用播放器 | 激情五月在线 | 色噜噜狠狠狠狠色综合 | 91成人精品一区在线播放69 | 天堂av在线| 国产精品福利在线 | 大片网站久久 | 丁香六月欧美 | 日韩免费久久 | 激情丁香5月 | 欧美地下肉体性派对 | 国产精品成人国产乱一区 | 99在线精品视频在线观看 | 91黄视频在线观看 | 国产成人61精品免费看片 | 日韩区欧美久久久无人区 | 久久久精品视频成人 | 日韩高清在线观看 | 国产精品欧美在线 | 成人啪啪18免费游戏链接 | 国产成人精品久久二区二区 | 国产一级特黄电影 | 亚洲精品456在线播放第一页 | 插婷婷 | 国产精品丝袜久久久久久久不卡 | 国产精品久久久久久久久搜平片 | 91亚洲精品久久久 | 中文字幕在线视频网站 | 亚洲闷骚少妇在线观看网站 | 国产69精品久久app免费版 | av网站在线免费观看 | 视频91 | 很黄很色很污的网站 | 伊人天天色 | 久久精品九色 | 午夜视频久久久 | 久久精品欧美日韩精品 | 久草在线视频精品 | 婷婷激情五月综合 | 久久99久久99精品免观看软件 | 日韩欧美精品一区二区三区经典 | 久久国色夜色精品国产 | 国产999| 国产黄色资源 | 一区 二区电影免费在线观看 | 色综合天天狠天天透天天伊人 | 91中文字幕网 | 深爱激情五月网 | 中文字幕电影网 | 成人在线黄色 | 日本深夜福利视频 | 久久精精品视频 | 久草视频在线免费播放 | 久久草草热国产精品直播 | 久久精品国产第一区二区三区 | 亚洲精品国产日韩 | 国产精品短视频 | 日韩黄色在线 | 在线免费视频你懂的 | 精品视频免费播放 | 99视频精品 | 色欧美88888久久久久久影院 | 国产 日韩 欧美 在线 | 日韩一区二区三免费高清在线观看 | 日韩欧美视频免费在线观看 | 久久久国际精品 | 一区二区三区四区五区在线 | 婷婷综合久久 | 黄色毛片电影 | 五月婷婷激情网 | 综合久久2023| 精品国产伦一区二区三区观看说明 | 涩涩资源网 | 欧美亚洲免费在线一区 | 在线免费av播放 | 久久久久久久影院 | 99视频一区二区 | 中文字幕高清av | 久久麻豆视频 | 草莓视频在线观看免费观看 | 亚洲一区免费在线 | 国产精品国产亚洲精品看不卡 | 免费美女久久99 | 成人av免费播放 | 手机在线黄色网址 | 婷婷日 | 999久久 | 天海冀一区二区三区 | 99久久日韩精品免费热麻豆美女 | 国产精品夜夜夜一区二区三区尤 | av日韩在线网站 | 精品国产理论 | 精品国产理论 | 久久成人综合 | 日本久久精品 | 99久久精品免费 | 国产免费激情久久 | 久久久国产精品电影 | 超碰在线观看97 | 免费网站在线 | 国产午夜精品一区二区三区嫩草 | 国产在线色站 | 免费a v网站| 精品一区二区在线观看 | 99热高清 | 色偷偷人人澡久久超碰69 | 欧美黄色高清 | 久久艹综合 | 亚洲一区二区观看 | 91av视屏 | 综合久久五月天 | 天天干天天搞天天射 | 我爱av激情网 | 免费亚洲视频在线观看 | 日日夜夜综合 | 男女激情片在线观看 | 99在线精品观看 | 91精品国产亚洲 | 在线一区二区三区 | 欧美另类色图 | 999久久久免费视频 午夜国产在线观看 | 国产精品久久久久久久久久东京 | av在线进入| 深夜福利视频在线观看 | 日韩免费高清在线观看 | 91精品老司机久久一区啪 | 欧美日韩一区三区 | 碰碰影院 | 开心激情综合网 | 91在线日韩 | 国产美女主播精品一区二区三区 | 色婷婷激情五月 | 久久九九国产精品 | 久久视频精品在线 | 黄色大片网 | 免费看黄在线网站 | 高清一区二区 | 99久久精品免费一区 | 国产视频久久 | 国产精品第一视频 | 国产日韩精品在线 | 色综合久 | 国产一级黄色av | 日韩女同av| 国内精品久久久精品电影院 | 久草在线资源视频 | 一区二区三区在线观看免费视频 | 伊人伊成久久人综合网小说 | 亚洲国产视频a | 国产黄免费 | 2023国产精品自产拍在线观看 | 18pao国产成视频永久免费 | 久久久久www | 国产精品剧情在线亚洲 | 91福利在线观看 | 麻豆国产露脸在线观看 | 免费看国产一级片 | 日本不卡视频 | 午夜黄色一级片 | 欧美性色黄大片在线观看 | 偷拍区另类综合在线 | av天天色 | 不卡的av电影在线观看 | 人人盈棋牌 | 99精品在线免费观看 | 久久久久国产精品免费网站 | 国产精品久久久久久久久久久久午 | 91成人网在线观看 | 日韩极品在线 | 国产免费高清 | 中文字幕一区av | 亚洲欧美日韩国产一区二区 | 亚洲波多野结衣 | 色就是色综合 | 中文字幕国语官网在线视频 | 日韩欧美xx| 亚洲aⅴ乱码精品成人区 | 午夜精品福利在线 | 探花系列在线 | 激情婷婷在线观看 | 国产日韩欧美在线观看视频 | 99视频精品全部免费 在线 | 久久综合狠狠狠色97 | 亚洲在线成人精品 | 精品毛片一区二区免费看 | 在线视频你懂得 | 91视频电影 | 久久久久久久久久电影 | 欧美激情在线看 | 亚洲国产中文字幕在线观看 | 香蕉影视| 天天草综合网 | 97视频免费在线观看 | 一本—道久久a久久精品蜜桃 | 久久久精品国产免费观看一区二区 | 日韩av电影免费观看 | 黄色a视频免费 | 日韩免费视频在线观看 | 中文字幕日韩无 | 国产黄色精品在线 | 久久欧美综合 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩手机视频 | 91久久国产露脸精品国产闺蜜 | 91成人亚洲 | 日韩免费网址 | 欧美一二三视频 | 久久资源在线 | 综合色播 | 99久久精品免费看 | 亚洲精品视频网站在线观看 | 亚洲精品综合欧美二区变态 | 色在线高清 | 亚洲专区在线播放 | 五月婷激情| 999电影免费在线观看2020 | 国产精品mm | 国产精品96久久久久久吹潮 | 天天射天天射天天射 | 91免费视频网站在线观看 | 国产乱码精品一区二区三区介绍 | 久久久久久久av麻豆果冻 | 色综合久久88色综合天天人守婷 | 国产精品欧美日韩 | 五月激情站 | 91大神免费在线观看 | 精品伦理一区二区三区 | 狠狠干夜夜 | 久二影院| 久久精品一区二区 | 在线看国产日韩 | 色瓜 | 午夜国产一区二区三区四区 | 亚洲国内精品 | 亚洲精品久久久久999中文字幕 | 久青草国产在线 | 成人试看120秒 | 最新av网址在线观看 | 亚洲久久视频 | japanesexxxxfreehd乱熟 | 在线a视频免费观看 | 精品亚洲免费 | 日韩中文字幕电影 | 日韩欧美精品一区二区三区经典 | 女女av在线 | 中文字幕韩在线第一页 | 欧美精品久久久久久久久久白贞 | 国产激情小视频在线观看 | 99re8这里有精品热视频免费 | 中文字幕国产精品 | 亚洲精品国产自产拍在线观看 | 国内精品久久影院 | 91一区啪爱嗯打偷拍欧美 | 依人成人综合网 | 婷婷丁香激情网 | 丁香花中文字幕 | 91成人蝌蚪 | 99福利片 | 色综合天天天天做夜夜夜夜做 | 五月婷香蕉久色在线看 | 最新国产福利 | 99热只有精品在线观看 | 欧美成人影音 | 欧美日韩视频在线观看一区二区 | 综合色在线观看 | 久久男人视频 | 一区二区三区视频 | 成人羞羞视频在线观看免费 | 久久狠狠一本精品综合网 | 探花视频在线版播放免费观看 | 国产这里只有精品 | www色网站 | 美女免费网视频 | 99久久精品电影 | 亚洲国产精品成人女人久久 | 波多野结衣精品在线 | 日韩视频一区二区在线 | 久久五月婷婷丁香社区 | 91黄视频在线观看 | 日韩av偷拍 | 97国产在线 | 狠狠色狠狠色综合日日92 | 日韩av资源在线观看 | 色欧美成人精品a∨在线观看 | 亚洲国产精品人久久电影 | 三级视频国产 | 色94色欧美 | 在线看一区二区 | 99在线看| 国产精品久久久久久久久久久久午 | 在线 成人| 毛片.com | 91九色视频在线 | 97精品国产91久久久久久 | 手机在线看永久av片免费 | 婷婷视频在线 | 免费在线观看国产精品 | 久久天天躁夜夜躁狠狠躁2022 | 99国产精品免费网站 | 中文av影院| 天天色天天色 | 2019精品手机国产品在线 | 日韩欧美一区二区三区在线观看 | 欧美精品视 | 免费进去里的视频 | 超碰成人av | 国产精品免费视频一区二区 | 天天插天天 | 国产精华国产精品 | 成人三级网址 | 亚洲成av人片在线观看无 | 久久精品影视 | 蜜桃av人人夜夜澡人人爽 | 丁香免费视频 | 狠狠干.com | 欧美另类色图 | 在线观看av中文字幕 | 久久伊人精品一区二区三区 | 91久久国产精品 | 97国产精品亚洲精品 | 精品国产乱码久久久久 | 精品在线免费视频 | 亚洲国产精品传媒在线观看 | 日本不卡一区二区三区在线观看 | 日日夜夜添| 黄色网在线播放 | 中文字幕电影在线 | 亚洲精品欧美专区 | 欧洲亚洲激情 | 久久精品久久精品久久精品 | av免费试看 | 免费av试看| 日本精品视频在线播放 | 9免费视频| 久久精品99国产精品 | 欧美色就是色 | 久久五月天色综合 | 久久久久久久久久免费 | 精品在线视频播放 | 久久精品一区二区国产 | 欧美一区二区三区免费观看 | 欧美在线日韩在线 | 免费在线观看av的网站 | a色视频 | 国产精品专区h在线观看 | 免费精品视频在线 | 日韩偷拍精品 | 日日干天天 | 黄色精品在线看 | 亚洲视频免费在线观看 | 91成人破解版 | 99热这里只有精品在线观看 | 97天天综合网 | 亚州人成在线播放 | 最近2019中文免费高清视频观看www99 | 亚洲精品一区二区久 | 国产精品一区二区久久国产 | 久久爱992xxoo | 欧美成年人在线观看 | 免费成人av在线 | 欧美日韩国产一二三区 | 精品久久久免费 | 午夜精品久久久99热福利 | 欧美在线1区 | 精品免费观看 | 亚洲成a人片77777潘金莲 |