ASP.NET MVC5網(wǎng)站開發(fā)管理列表、回復(fù)及刪除(十三)
一、管理列表
跟上次我的列表相似,直接貼代碼了。
首先打開Consultation控制器,添加ManageList方法
/// <summary> /// 咨詢管理 /// </summary> /// <returns></returns> public ActionResult ManageList() { return View(); }
添加返回json數(shù)據(jù)的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 = "咨詢管理"; } <div id="toolbar"> <div> <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="$('#Consultation_List').datagrid('reload');">刷新</a> </div> </div> <table id="Consultation_List"></table> <script src="~/Scripts/Common.js"></script> <script src="~/Scripts/jquery.easyui.datagrid.detailview.js"></script> <script type="text/javascript"> $("#Consultation_List").datagrid({ loadMsg: '加載中……', fitColumns: true, pagination: true, url: '@Url.Action("ManageJsonList", "Consultation")', columns: [[ { field: 'ModelID', title: 'ID', checkbox: true }, { field: 'Title', title: '標(biāo)題' }, { field: 'Inputer', title: '咨詢?nèi)?, align: 'right' }, { field: 'ReleaseDate', title: '咨詢?nèi)掌?, align: 'right', formatter: function (value, row, index) { return jsonDateFormat(value); } }, { field: 'StatusString', title: '狀態(tài)', width: 100, align: 'right' } ]], toolbar: '#toolbar', idField: 'ModelID', view: detailview, detailFormatter: function (rowIndex, rowData) { return '<div class="detail" style="width:100%,padding:5px 0"></div>'; }, onExpandRow: function (index, row) { var detail = $(this).datagrid('getRowDetail', index).find('div.detail'); $(detail).html("<iframe frameborder='0' marginwidth='0' height='160px' width='100%' src='@Url.Action("Reply", "Consultation")/" + row.ModelID + "'></iframe>"); $('#Consultation_List').datagrid('fixDetailRowHeight', index); } }); </script>
二、回復(fù)評(píng)論
ManageList添加datagrid詳細(xì)視圖使用類框架(("<iframe frameborder='0' marginwidth='0' height='160px' width='100%' src='@Url.Action("Reply", "Consultation")/" + row.ModelID + "'></iframe>")。“Consultation/Reply”就是我們回復(fù)的視圖。
在Consultation控制器,添加Reply方法
/// <summary> /// 回復(fù) /// </summary> /// <param name="id">id</param> /// <returns></returns> 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 回復(fù)如下</span> <br /> <p style=" margin-top:8px"> @Model.ReplyContent </p> </td> </tr> } else { <tr> <th> 回復(fù) @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", "必須輸入回復(fù)內(nèi)容!"); 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參數(shù)(RouteData.Values.ContainsKey("id"))
2、查找該ID的CommonModel,并獲取客戶端傳過來的ReplyContent,設(shè)置其他參數(shù)(ReplyTime,Status)并保存到數(shù)據(jù)庫(kù)
3、返回視圖
三、刪除評(píng)論
在Consultation控制器,添加Delete方法
/// <summary> /// 刪除評(píng)論 /// </summary> /// <param name="id">公共模型ID</param> /// <returns></returns> 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("確認(rèn)", "您確定要?jiǎng)h除所選行嗎?", 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; }
本文已被整理到了《ASP.NET MVC網(wǎng)站開發(fā)教程》,歡迎大家學(xué)習(xí)閱讀,更多內(nèi)容還可以參考ASP.NET MVC5網(wǎng)站開發(fā)專題學(xué)習(xí)。
這次的內(nèi)容比較重復(fù),管理列表類似與我的咨詢列表,刪除、回復(fù)與文章的代碼很類似,關(guān)于member區(qū)域終于寫完,希望對(duì)大家有所幫助。
- IIS7/IIS7.5/IIS8網(wǎng)站目錄執(zhí)行權(quán)限設(shè)置方法(與IIS6不同)
- Win2008 R2中IIS7.5配置完網(wǎng)站權(quán)限不足問題的解決方法
- IIS PHP環(huán)境Temp文件夾的權(quán)限問題引起的網(wǎng)站故障
- win2003 IIS虛擬主機(jī)網(wǎng)站防木馬、權(quán)限設(shè)置、安全配置整理
- Apache Wind2003 配置網(wǎng)站目錄權(quán)限小結(jié)
- ASP.NET MVC5網(wǎng)站開發(fā)之登錄、驗(yàn)證和注銷管理員篇1(六)
- ASP.NET MVC5網(wǎng)站開發(fā)之實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)層功能(三)
- vs2010制作簡(jiǎn)單的asp.net網(wǎng)站
- 如何對(duì)ASP.NET網(wǎng)站實(shí)現(xiàn)靜態(tài)化
- MVC網(wǎng)站開發(fā)之權(quán)限管理篇
相關(guān)文章
ASP.NET漢字轉(zhuǎn)拼音 - 輸入漢字獲取其拼音的具體實(shí)現(xiàn)
這篇文章主要介紹了ASP.NET漢字轉(zhuǎn)拼音 - 輸入漢字獲取其拼音的具體實(shí)現(xiàn),需要的朋友可以參考下2014-02-02asp.net SqlDataAdapter對(duì)象使用札記
如果 DataAdapter 遇到多個(gè)結(jié)果集,它將在 DataSet 中創(chuàng)建多個(gè)表。將向這些表提供遞增的默認(rèn)名稱 TableN,以表示 Table0 的“Table”為第一個(gè)表名。2009-04-04Asp.Net實(shí)現(xiàn)無限分類生成表格的方法(后臺(tái)自定義輸出table)
這篇文章主要介紹了Asp.Net實(shí)現(xiàn)無限分類生成表格的方法,同時(shí)后臺(tái)自定義輸出table表格,詳細(xì)分析了asp.net生成表格的相關(guān)技巧,需要的朋友可以參考下2016-04-04Asp.net的GridView控件實(shí)現(xiàn)單元格可編輯方便用戶使用
考慮到用戶使用方便,減少?gòu)棾鲰撁?,采用點(diǎn)“編輯”按鈕無需彈出頁面直接當(dāng)前行的單元格內(nèi)容就能編輯,思路及代碼如下,有此需求的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08MVC4 基礎(chǔ) 枚舉生成 DropDownList 實(shí)用技巧
本篇文章小編為大家介紹,MVC4 基礎(chǔ) 枚舉生成 DropDownList 實(shí)用技巧。需要的朋友參考下2013-04-04注冊(cè)或者點(diǎn)擊按鈕時(shí),怎么防止用戶重復(fù)提交數(shù)據(jù)(實(shí)例講解)
這篇文章主要是對(duì)注冊(cè)或者點(diǎn)擊按鈕時(shí),怎么防止用戶重復(fù)提交數(shù)據(jù)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12水晶報(bào)表asp.net的webform下基本用法實(shí)例
這篇文章主要介紹了水晶報(bào)表asp.net的webform下基本用法,實(shí)例講述了asp.net中水晶報(bào)表的創(chuàng)建與使用方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11