ajax即时修改

需求:对是否启用进行即时勾选

实现:

News602 新华社新闻 Cotroller中:
        /// <summary>
        /// 修改启用不启用  Enabled 
        /// </summary>
        /// <param name="lcid"></param>
        /// <param name="id"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<IActionResult> EditEnable([FromForm]string lcid, string id, [FromForm]bool enable)
        {
            try
            {
                switch (lcid)   //根据 语言 Lcid 判断
                {
                    case "2052":
                        {
                            var entity = await _context.News2052.FindAsync(id);
                            entity.Enabled = enable;
                            await _context.SaveChangesAsync();
                        }
                        break;
                    case "1033":
                        {
                            var entity = await _context.News1033.FindAsync(id);
                            entity.Enabled = enable;
                            await _context.SaveChangesAsync();
                        }
                        break;
                    case "1034":
                        {
                            var entity = await _context.News1034.FindAsync(id);
                            entity.Enabled = enable;
                            await _context.SaveChangesAsync();
                        }
                        break;
                    case "1025":
                        {
                            var entity = await _context.News1025.FindAsync(id);
                            entity.Enabled = enable;
                            await _context.SaveChangesAsync();
                        }
                        break;
                    case "1049":
                        {
                            var entity = await _context.News1049.FindAsync(id);
                            entity.Enabled = enable;
                            await _context.SaveChangesAsync();
                        }
                        break;
                }
                return Ok();
            }
            catch (Exception)
            {
                throw;
            }
        }        

  

 

首先是否启用该字段是bool? 类型 ,得先写一个bool? 类型的模板

在Shared文件夹下新建 BoolTemplate.cshtml 页面

@model object

@{
    bool value = Convert.ToBoolean(Model);
}

@Html.CheckBox("", value)

 

在显示视图Index.cshtml页面引入该模板    
  <tbody> @foreach (var item in Model as List<CnpiecNRP.Areas.Maintain.ViewModels.AllNewsViewModel>) { <tr> <td> @Html.HiddenFor(modelItem => item.Nid) @Html.HiddenFor(modelItem => item.Lcid) @if ((ViewBag.searchKeyWord as string[]).Length >= 1) @*多个关键字高亮显示*@
{ var title = item.SourceTitle; var keywords = ViewBag.searchKeyWord as string[]; for (int i = 0; i < (ViewBag.searchKeyWord as string[]).Length; i++) { var current = keywords[i]; title = new System.Text.RegularExpressions.Regex(current).Replace(title, "<span style='background:yellow;font-weight: bold;'>" + current + "</span>"); } @Html.Raw(title); } else { @Html.DisplayFor(modelItem => item.SourceTitle) } </td> <td> @Html.DisplayFor(modelItem => item.SourcePubDate, "MyDatetime") @*时间模板*@
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Enabled, "BoolTemplate")    @*bool? 模板*@ 

</td>
                <td>  
                    <a asp-action="Edit" asp-route-id="@item.Nid" asp-route-lcid="@item.Lcid">编辑</a> |
                    <a asp-action="Delete" asp-route-id="@item.Nid" asp-route-lcid="@item.Lcid">删除</a>  |
                    <a class="ContentDetails">展开</a>
                </td>
            </tr>
            <tr class="Content">
                <td colspan="4">
                    <h5 style="color:cyan;">详细内容:</h5>
                    <p>@Html.Raw(item.HtmlContext)</p>
                </td>
            </tr>
        }
    </tbody>

  

显示视图 Index.cshtml 中 ajax 调用
<script>
//选择复选框绑定点击事件 $(".table.table-hover tbody tr td input[type=checkbox]").on('click', function () { var $this = $(this); var IsChecked = $(this).is(':checked'); //获取复选框的状态 var id = $(this).parent().siblings().eq(0).find("[name$=Nid]")[0].value; var lcid = $(this).parent().siblings().eq(0).find("[name$=Lcid]")[0].value; //获取 Nid 和 Lcid 的值 $.ajax({ url: "/Maintain/News602/EditEnable/" + id, type: "post", data: { lcid: lcid, enable: IsChecked }, success: function (result, state) { if (state != "success") { alert("修改启用状态失败"); $this.prop("checked", !$this.prop("checked")); } }, error: function (result) { alert("失败"); } }) }) </script>

  

posted @ 2018-07-24 14:35  NICETOMEETYOUSEVEN  阅读(321)  评论(0编辑  收藏  举报