婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET MVC5網站開發我的咨詢列表及添加咨詢(十二)

ASP.NET MVC5網站開發我的咨詢列表及添加咨詢(十二)

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

上次把咨詢的架構搭好了,現在分兩次來完成咨詢:1、用戶部分,2管理部分。這次實現用戶部分,包含兩個功能,查看我的咨詢和進行咨詢。

一、菜單

打開上次添加的ConsultationController控制器,添加Menu action,返回分布視圖

/// summary>
  /// 菜單
  /// /summary>
  /// returns>/returns>
  public ActionResult Menu()
  {
   return PartialView();
  }

右鍵添視圖

div class="easyui-accordion">
  div title="咨詢管理">
    ul id="navmenu" class="nav nav-pills nav-stacked">
      li> a href="javascript:void()" data-options="'icons':'icon-folder-page','title': '咨詢管理', 'href': '@Url.Action("ManageList", "Consultation")'">span class="glyphicon glyphicon-list"> 咨詢管理/span>/a>/li>
      li> a href="javascript:void()" data-options="'icons':'icon-folder-user','title': '我的咨詢', 'href': '@Url.Action("MyList", "Consultation")'">span class="glyphicon glyphicon-list-alt"> 我的咨詢/span>/a>/li>
    /ul>
  /div>
/div>

再打開Home/menu視圖

添加分布視圖引用

運行一下,在留言器中看下/Member/Home。效果如。

 二、我的咨詢

我的咨詢部分用datagrid顯示自己的咨詢列表,datagrid使用詳細視圖功能,點開折疊可以看到詳細內容。

效果是這樣,折疊時:

點開后

這是datagrid的擴展功能,先要去官網下載jquery-easyui-datagridview.zip,然后把里面的jquery.easyui.datagrid.detailview.js文件放到項目/Scripts文件夾下。

 打開ConsultationController控制器,添加MyJsonList方法,返回我的咨詢的json列表

public JsonResult MyJsonList(int pageIndex = 1, int pageSize = 20)
  {
   int _total;
   var _list = commonModelService.FindPageList(out _total, pageIndex, pageSize, "Consultation", string.Empty, 0, User.Identity.Name, 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() });
  }

再次添加MyList方法,直接返回視圖

/// summary>
  /// 我的咨詢
  /// /summary>
  /// returns>/returns>
  public ActionResult MyList()
  {
   return View();
  }

右鍵為MyList添加視圖。

 

@{
 ViewBag.Title = "我的咨詢";
}

div id="toolbar">
 div>
  a href="#" id="btn_add" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">進行咨詢/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,
  singleSelect: true,
  url: '@Url.Action("MyJsonList", "Consultation")',
  columns: [[
   { field: 'ModelID', title: 'ID' },
   { field: 'Title', title: '標題'},
   { field: 'Inputer', title: '咨詢人', align: 'right' },
   { field: 'ReleaseDate', title: '咨詢日期', align: 'right', formatter: function (value, row, index) { return jsonDateFormat(value); } },
   { field: 'StatusString', title: '狀態', width: 100, align: 'right' }
  ]],
  toolbar: '#toolbar',
  idField: 'ModelID',
  view: detailview,
  detailFormatter: function (rowIndex, rowData) { return 'div class="detail" style="padding:5px 0">/div>'; },
  onExpandRow: function (index, row) {
   var detail = $(this).datagrid('getRowDetail', index).find('div.detail');
   detail.panel({
    height: 160,
    border: false,
    cache: false,
    href: '@Url.Content("~/Member/Consultation/Index")/' + row.ModelID,
    onLoad: function () {
     $('#Consultation_List').datagrid('fixDetailRowHeight', index);
    }
   });
   $('#Consultation_List').datagrid('fixDetailRowHeight', index);
  }
 });

 //添加按鈕
 $("#btn_add").click(function () {
  window.parent.addTab("進行咨詢", "@Url.Action("Add", "Consultation")", "icon-page");
 });
/script>

這段代碼比較長,解釋一下:

div id="toolbar">
 div>
  a href="#" id="btn_add" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">進行咨詢/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>

這是datagrid的主題和工具欄。

 

引用~/Scripts/Common.js 是因為里面包含日期格式化方法,json傳過來的日期必須格式化后才能正常顯示。

引用~/Scripts/jquery.easyui.datagrid.detailview.js 是datagrid像是視圖必須的。

這個是初始化datagrid。其中1是使用Common.js中的jsonDateFormater方法格式化日期。2、就是詳細視圖部分

view: detailview,
        detailFormatter: function (rowIndex, rowData) { return 'div class="detail" style="padding:5px 0">/div>'; }

這兩句使用詳細視圖,并為詳細視圖添加一個DIV>

onExpandRow: function (index, row) { 
   var detail = $(this).datagrid('getRowDetail', index).find('div.detail'); 
   detail.panel({ 
    height: 160, 
    border: false, 
    cache: false, 
    href: '@Url.Content("~/Member/Consultation/Index")/' + row.ModelID, 
    onLoad: function () { 
     $('#Consultation_List').datagrid('fixDetailRowHeight', index); 
    } 
   });

這段是在行展開時為詳細視圖的div鏈接到~/Member/Consultation/Index/id視圖

 

下面來添加Consultation/Index這個分布視圖

在控制器中添加Index action 并返回分布視圖

public ActionResult Index(int id)
  {
   return PartialView(commonModelService.Find(id).Consultation);
  }

右鍵添加強類型(Consultation)分布視圖

@model Ninesky.Models.Consultation

table style="width:100%">
 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>
 tr>
  td colspan="4">
   @if (Model.ReplyTime != null)
   {
    span>管理員于:@Model.ReplyTime 回復如下/span>
    p style="margin-top:8px">
     @Model.ReplyContent
    /p>
   }
  /td>
 /tr>
/table>

完工

 三、進行咨詢

在Consultation控制器添加 Add  action

/// summary>
  /// 添加
  /// /summary>
  /// returns>/returns>
  public ActionResult Add()
  {
   InterfaceUserService _userService = new UserService();
   var _user = _userService.Find(User.Identity.Name);
   CommonModel _cModel = new CommonModel();
   _cModel.Consultation = new Consultation() { Email = _user.Email, IsPublic = true, Name = _user.DisplayName };
   _user = null;
   _userService = null;
   return View(_cModel);
  }

在action中先查詢用戶信息,構造一個CommonModel并傳給視圖

右鍵添加視圖

@model Ninesky.Models.CommonModel

@{
 ViewBag.Title = "進行咨詢";
}

@using (Html.BeginForm())
{
 @Html.AntiForgeryToken()
 h4>進行咨詢/h4>
 hr />
 div class="form-horizontal">
  @Html.ValidationSummary(true)

  div class="form-group">
   label class = "control-label col-sm-2" >類型/label>
   div class="col-sm-10">
    input id="CategoryID" name="CategoryID" data-options="url:'@Url.Action("JsonComboBox", "Category", new { model = "Consultation" })',valueField:'CategoryID',textField:'Name'" class="easyui-combobox" style="height: 34px; width: 280px;" />
    @Html.ValidationMessageFor(model => model.CategoryID)
   /div>
  /div>

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

  div class="form-group">
   @Html.LabelFor(model => model.Consultation.IsPublic, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.RadioButtonFor(model => model.Consultation.IsPublic,true) 公開
    @Html.RadioButtonFor(model => model.Consultation.IsPublic, false) 僅自己查看
    @Html.ValidationMessageFor(model => model.Consultation.IsPublic)
   /div>
  /div>

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

  div class="form-group">
   @Html.LabelFor(model => model.Consultation.Content, new { @class = "control-label col-sm-2" })
   div class="col-sm-10">
    @Html.TextAreaFor(model => model.Consultation.Content, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Consultation.Content)
   /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>
}

與添加文章非常類似,下面寫接受方法

再次在控制器中添加Add action

[HttpPost]
  [ValidateAntiForgeryToken]
  public ActionResult Add(CommonModel commonModel)
  {
   if(ModelState.IsValid)
   {
    InterfaceUserService _userService = new UserService();
    var _user = _userService.Find(User.Identity.Name);
    if (commonModel.Article != null) commonModel.Article = null;
    if (commonModel.Attachment != null) commonModel.Attachment = null;
    if (commonModel.DefaultPicUrl != null) commonModel.DefaultPicUrl = null;
    commonModel.Hits = 0;
    commonModel.Inputer = User.Identity.Name;
    commonModel.Model = "Consultation";
    commonModel.ReleaseDate = System.DateTime.Now;
    commonModel.Status = 20;
    commonModel.Consultation.Name = _user.DisplayName;
    _user = null;
    _userService = null;
    commonModel = commonModelService.Add(commonModel);
    if (commonModel.ModelID > 0) return View("AddSucess", commonModel);
   }
   return View(commonModel);
  }

在action中如果驗證通過,先查找用戶,并將Article、Attachment設為null,這是防止用戶偷偷夾帶私貨。然后初始化commonModel的Hits、Inputer等字段并保存。

效果:

 我的咨詢實現了查看我的咨詢和進行咨詢兩個功能,查看使用了datagrid的詳細視圖。

以上就是我的咨詢列表及添加咨詢的實現全過程,希望對大家的學習有所幫助。

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

標簽:南寧 崇左 洛陽 青海 衢州 贛州 汕尾 平涼

巨人網絡通訊聲明:本文標題《ASP.NET MVC5網站開發我的咨詢列表及添加咨詢(十二)》,本文關鍵詞  ASP.NET,MVC5,網站開發,我的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET MVC5網站開發我的咨詢列表及添加咨詢(十二)》相關的同類信息!
  • 本頁收集關于ASP.NET MVC5網站開發我的咨詢列表及添加咨詢(十二)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美人与z0zoxxxx视频| 色av成人天堂桃色av| 亚洲视频资源在线| 日韩伦理av电影| 亚洲国产色一区| 亚洲成人一区二区| 色av成人天堂桃色av| 欧美一区二区成人6969| 久久精品视频一区二区三区| 国产精品美女www爽爽爽| 亚洲色图一区二区三区| 天堂午夜影视日韩欧美一区二区| 国产成人综合在线| 日韩欧美一二区| 国产精品国产三级国产aⅴ入口 | 国产精品一色哟哟哟| 亚洲欧洲av另类| 国产精品国产三级国产aⅴ入口| 日韩美女啊v在线免费观看| 美女网站色91| 色国产综合视频| 亚洲国产精品v| 成人免费看片app下载| 欧美一级日韩不卡播放免费| 中文字幕中文字幕中文字幕亚洲无线| 久久99国产精品久久| 欧美一级生活片| 国产喂奶挤奶一区二区三区| 丝袜美腿亚洲一区| 8v天堂国产在线一区二区| 亚洲少妇30p| 国产凹凸在线观看一区二区| 欧美岛国在线观看| 97久久超碰国产精品| 亚洲天堂久久久久久久| 国产成人免费网站| 国产精品久久久久三级| 色天使色偷偷av一区二区| 亚洲高清免费在线| 精品日本一线二线三线不卡| 日本不卡不码高清免费观看| 91久久国产综合久久| 亚洲超碰97人人做人人爱| 欧美大片一区二区三区| 国产毛片精品视频| 精品sm捆绑视频| 国产成人免费在线观看不卡| 一区二区视频在线| 日韩一区二区三区视频在线 | 舔着乳尖日韩一区| 91亚洲精华国产精华精华液| 日本亚洲最大的色成网站www| 国产日产欧产精品推荐色 | 日韩在线一区二区| 国产精品网站在线播放| 日韩精品中文字幕在线一区| 色老综合老女人久久久| 男人操女人的视频在线观看欧美| 中文字幕亚洲电影| 51精品视频一区二区三区| 国产精品99久久久久久久vr| 亚洲一区二区三区四区不卡| 国产亚洲成aⅴ人片在线观看 | 欧美国产乱子伦 | 国产精品久久久久久久浪潮网站 | 国产视频在线观看一区二区三区| 亚洲日本护士毛茸茸| 国产成人激情av| 中文字幕在线一区免费| 成人黄动漫网站免费app| 国产精品全国免费观看高清| 成人综合激情网| 欧美激情一区二区| 国产主播一区二区三区| 色综合网站在线| 亚洲欧美日韩久久| 欧美久久久久免费| 久久国产综合精品| 国产日本欧美一区二区| 欧美日韩国产一级二级| 91色porny在线视频| 国产一区二区三区不卡在线观看| 天天综合网天天综合色| 亚洲天堂网中文字| 日韩高清一区二区| 日韩精彩视频在线观看| 天天色天天操综合| 亚洲欧美在线高清| 国产精品的网站| 国产精品欧美一区二区三区| 欧美tk—视频vk| 26uuu色噜噜精品一区二区| 亚洲精品视频观看| 91丨porny丨最新| 久久精品在这里| 亚洲二区视频在线| 777欧美精品| 99精品视频在线播放观看| 亚洲午夜羞羞片| 久久午夜色播影院免费高清 | 三级久久三级久久久| 久久美女高清视频| 欧美美女bb生活片| 欧美午夜在线一二页| 97精品电影院| 国产成人在线视频免费播放| 日本在线播放一区二区三区| 中文字幕永久在线不卡| 久久亚区不卡日本| 欧美一区中文字幕| 精品久久久久久无| 日韩成人午夜精品| 蜜乳av一区二区| 欧美手机在线视频| 久久精品免费观看| 日本一二三不卡| 捆绑调教一区二区三区| 91麻豆国产自产在线观看| 国产精品嫩草99a| 不卡av电影在线播放| 亚洲日本在线看| 日本精品免费观看高清观看| 国产精品日日摸夜夜摸av| 奇米影视一区二区三区小说| 欧美va亚洲va在线观看蝴蝶网| 午夜激情久久久| 欧美四级电影在线观看| 婷婷久久综合九色国产成人| 在线不卡的av| 国产一区福利在线| 亚洲欧美日韩国产成人精品影院 | voyeur盗摄精品| 亚洲视频电影在线| 色噜噜狠狠一区二区三区果冻| 亚洲视频你懂的| 91蝌蚪国产九色| 亚洲一区二区三区四区五区中文| 欧美成人伊人久久综合网| 国产美女精品在线| 亚洲欧洲成人精品av97| 制服丝袜成人动漫| 国产精一品亚洲二区在线视频| 欧美国产日韩a欧美在线观看| 99riav一区二区三区| 五月天久久比比资源色| 日韩免费电影一区| 国产麻豆日韩欧美久久| 国产精品乱码人人做人人爱| 99精品久久只有精品| 国产日韩欧美精品综合| 91精品国产入口在线| 久久精品国产一区二区| 亚洲激情图片小说视频| 欧美三级视频在线观看| 91在线视频播放地址| 久久亚洲私人国产精品va媚药| 日韩一级片网址| 久久九九久久九九| 不卡的电影网站| 色婷婷国产精品综合在线观看| 日韩亚洲电影在线| 国产精品少妇自拍| 激情国产一区二区| 久久久国产综合精品女国产盗摄| 日本va欧美va精品发布| bt欧美亚洲午夜电影天堂| 欧美成人a在线| 国产在线精品视频| 欧美久久一区二区| 中文字幕亚洲一区二区va在线| 蜜芽一区二区三区| 欧美精品一区二区在线观看| 国产盗摄精品一区二区三区在线| 国产精品久久免费看| 4hu四虎永久在线影院成人| 蜜臀精品一区二区三区在线观看 | 欧美日韩高清在线播放| 欧美精品在线视频| 久久精品国产成人一区二区三区 | 国产一区视频网站| 欧美国产一区视频在线观看| 色婷婷久久久综合中文字幕| 麻豆成人av在线| 日本一区二区视频在线观看| 91网站黄www| 激情文学综合丁香| 国产精品大尺度| 91精品在线一区二区| 欧美aaaaaa午夜精品| 久久综合狠狠综合久久综合88 | 欧美一区二区三区影视| 一区二区三区精品在线| 欧美精品亚洲一区二区在线播放| 久久国产三级精品| 最新高清无码专区| 亚洲人精品午夜| 久久综合久久综合亚洲| 99精品视频一区| 99久久99久久精品免费看蜜桃| 午夜电影网一区|