正本想接着上次把这篇写完的,没想到后来作业的一些事落下了,放假了赶忙补上。
目录:
ASP.NET MVC5 网站开发实习 - 概述
ASP.NET MVC5 网站开发实习(一) - 项目结构
ASP.NET MVC5 网站开发实习(一) - 结构(续) 模型、数据存储、业务逻辑
ASP.NET MVC5 网站开发实习(二) - 用户有些(1)用户注册
ASP.NET MVC5 网站开发实习(二) - 用户有些(2)用户登录、刊出
ASP.NET MVC5 网站开发实习(二) - 用户有些(3)修正材料、修正暗码
ASP.NET MVC5 网站开发实习(二) Member区域 - 文章办理架构
ASP.NET MVC5 网站开发实习(二) Member区域 - 增加文章
ASP.NET MVC5 网站开发实习(二) Member区域 - 悉数文章列表
ASP.NET MVC5 网站开发实习(二) Member区域 - 修正及删去文章
ASP.NET MVC5 网站开发实习(二) Member区域 - 征询办理的架构
ASP.NET MVC5 网站开发实习(二) Member区域–我的征询列表及增加征询
一、办理列表
跟上次我的列表相似,直接贴代码了。
首要翻开Consultation控制器,增加ManageList办法
/// /// 征询办理 /// /// public ActionResult ManageList() { return View(); }
增加回来json数据的ManageJsonList
public JsonResult ManageJsonList(int pageIndex = 1, int pageSize = 20) { int _total; var _list = commonModelService.FindPageList(out _total, pageIndex, pageSize, "Consultation", string.Empty, 0, string.Empty, null, null, 0).ToList().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 = _list.ToList() }); }
右键为ManageList增加试图
@{ ViewBag.Title = "征询办理"; }
二、回复谈论
ManageList增加datagrid详细视图使用类结构(("")。“Consultation/Reply”即是咱们回复的视图。
在Consultation控制器,增加Reply办法
/// /// 回复 /// /// id /// public ActionResult Reply(int id) { return View(commonModelService.Find(id).Consultation); }
右键增加视图
@model Ninesky.Models.Consultation @using (Html.BeginForm()) { @Html.AntiForgeryToken() <table style="width:100%;font-size:12px;"> <tr> <th>@Html.DisplayNameFor(model => model.Name)th> <td>@Html.DisplayFor(model => model.Name)td> <th>@Html.DisplayNameFor(model => model.IsPublic)th> <td>@Html.DisplayFor(model => model.IsPublic)td> tr> <tr> <th>@Html.DisplayNameFor(model => model.QQ)th> <td>@Html.DisplayFor(model => model.QQ)td> <th>@Html.DisplayNameFor(model => model.Email)th> <td>@Html.DisplayFor(model => model.Email)td> tr> <tr> <th>@Html.DisplayNameFor(model => model.Content)th> <td colspan="3">@Html.DisplayFor(model => model.Content)td> tr> @if (Model.ReplyTime != null) { <tr> <td colspan="4"> <span>办理员于:@Model.ReplyTime 回复如下span> <br /> <p style=" margin-top:8px"> @Model.ReplyContent p> td> tr> } else { <tr> <th> 回复 @Html.HiddenFor(model => model.ConsultationID) @Html.ValidationMessageFor(model=>model.ConsultationID) th> <td colspan="3"> @Html.TextAreaFor(model => model.ReplyContent, new { @class = "form-control" }) @Html.ValidationMessageFor(model=>model.ReplyContent) td> tr> <tr> <th> th> <td colspan="3"> <input type="submit" class="btn_reply btn btn-primary" value="断定" /> td> tr> } table> }
增加接收处置的办法。
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Reply() { CommonModel _commonModel = null; if (RouteData.Values.ContainsKey("id")) { int _modelId = int.Parse(RouteData.Values["id"].ToString()); _commonModel = commonModelService.Find(_modelId); if (string.IsNullOrEmpty(Request.Form["ReplyContent"])) ModelState.AddModelError("ReplyContent", "有必要输入回复内容!"); else { _commonModel.Consultation.ReplyContent = Request.Form["ReplyContent"]; _commonModel.Consultation.ReplyTime = System.DateTime.Now; _commonModel.Status = 29; commonModelService.Update(_commonModel); } } return View(_commonModel.Consultation); }
进程是:
1、接收路由中的id参数(RouteData.Values.ContainsKey("id"))
2、查找该ID的CommonModel,并获取客户端传过来的ReplyContent,设置其他参数(ReplyTime,Status)并保存到数据库
3、回来视图
三、删去谈论
在Consultation控制器,增加Delete办法
/// /// 删去谈论 /// /// 公共模型ID /// public ActionResult Delete(int id) { var _commonModel = commonModelService.Find(id); if (_commonModel == null) return Json(false); if (commonModelService.Delete(_commonModel)) return Json(true); else return Json(false); }
然后翻开ManageList视图,增加删去js代码
//删去 function del() { var rows = $("#Consultation_List").datagrid("getSelections"); if (!rows || rows.length < 1) { $.messager.alert("提示", "未选择任何行!"); return; } else if (rows.length > 0) { $.messager.confirm("确认", "您断定要删去所选行吗?", function (r) { if (r) { $.messager.progress(); $.each(rows, function (index, value) { $.ajax({ type: "post", url: "@Url.Action("Delete", "Consultation")", data: { id: value.ModelID }, async: false, success: function (data) { } }); }); $.messager.progress('close'); //清除选择行 rows.length = 0; $("#Consultation_List").datagrid('reload'); } }); return; }
四、总结
这次的内容比较重复,办理列表相似与我的征询列表,删去、回复与文章的代码很相似。总算写完,下次开端写后台办理区域。
==========================================
代码 http://pan.baidu.com/s/1bn07Igf