$("#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 '
'; },   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");  });

这段代码比较长,解释一下:


 
  进行咨询   刷新  

这是datagrid的主题和工具栏。

引用~/Scripts/Common.js 是因为里面包含日期格式化方法,json传过来的日期必须格式化后才能正常显示。

引用~/Scripts/jquery.easyui.datagrid.detailview.js 是datagrid像是视图必须的。如何实现ASP.NET MVC5网站开发我的咨询列表及添加咨询

这个是初始化datagrid。其中1是使用Common.js中的jsonDateFormater方法格式化日期。2、就是详细视图部分

view: detailview,
        detailFormatter: function (rowIndex, rowData) { return '

'; }

这两句使用详细视图,并为详细视图添加一个

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


 
  @Html.DisplayNameFor(model => model.Name)
  @Html.DisplayFor(model => model.Name)
  @Html.DisplayNameFor(model => model.IsPublic)
  @Html.DisplayFor(model => model.IsPublic)
 
 
  @Html.DisplayNameFor(model => model.QQ)
  @Html.DisplayFor(model => model.QQ)
  @Html.DisplayNameFor(model => model.Email)
  @Html.DisplayFor(model => model.Email)
 
 
  @Html.DisplayNameFor(model => model.Content)
  @Html.DisplayFor(model => model.Content)
 
 
  
   @if (Model.ReplyTime != null)
   {
    管理员于:@Model.ReplyTime 回复如下
    
     @Model.ReplyContent
    

   }     

完工

 三、进行咨询

在Consultation控制器添加 Add  action

/// 
  /// 添加
  /// 
  /// 
  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()
 
进行咨询
      @Html.ValidationSummary(true)       类型              @Html.ValidationMessageFor(model => model.CategoryID)    
         @Html.LabelFor(model => model.Title, new { @class = "control-label col-sm-2" })         @Html.TextBoxFor(model => model.Title, new { @class = "form-control" })     @Html.ValidationMessageFor(model => model.Title)              @Html.LabelFor(model => model.Consultation.Name, new { @class = "control-label col-sm-2" })         @Html.TextBoxFor(model => model.Consultation.Name, new { @class = "form-control", @readonly = "readonly" })     @Html.ValidationMessageFor(model => model.Consultation.Name)              @Html.LabelFor(model => model.Consultation.QQ, new { @class = "control-label col-sm-2" })         @Html.TextBoxFor(model => model.Consultation.QQ, new { @class = "form-control" })     @Html.ValidationMessageFor(model => model.Consultation.QQ)              @Html.LabelFor(model => model.Consultation.IsPublic, new { @class = "control-label col-sm-2" })         @Html.RadioButtonFor(model => model.Consultation.IsPublic,true) 公开     @Html.RadioButtonFor(model => model.Consultation.IsPublic, false) 仅自己查看     @Html.ValidationMessageFor(model => model.Consultation.IsPublic)              @Html.LabelFor(model => model.Consultation.Email, new { @class = "control-label col-sm-2" })         @Html.TextBoxFor(model => model.Consultation.Email, new { @class = "form-control" })     @Html.ValidationMessageFor(model => model.Consultation.Email)              @Html.LabelFor(model => model.Consultation.Content, new { @class = "control-label col-sm-2" })         @Html.TextAreaFor(model => model.Consultation.Content, new { @class = "form-control" })     @Html.ValidationMessageFor(model => model.Consultation.Content)                             }

与添加文章非常类似,下面写接受方法

再次在控制器中添加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等字段并保存。

效果:

如何实现ASP.NET MVC5网站开发我的咨询列表及添加咨询

如何实现ASP.NET MVC5网站开发我的咨询列表及添加咨询

 我的咨询实现了查看我的咨询和进行咨询两个功能,查看使用了datagrid的详细视图。

感谢各位的阅读,以上就是“如何实现ASP.NET MVC5网站开发我的咨询列表及添加咨询”的内容了,经过本文的学习后,相信大家对如何实现ASP.NET MVC5网站开发我的咨询列表及添加咨询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联网站建设公司,,小编将为大家推送更多相关知识点的文章,欢迎关注!


网站栏目:如何实现ASP.NETMVC5网站开发我的咨询列表及添加咨询-创新互联
网站路径:http://wjwzjz.com/article/ccejsd.html