如何使用 JQuery 在 MVC 中删除选中的行

Posted

技术标签:

【中文标题】如何使用 JQuery 在 MVC 中删除选中的行【英文标题】:How to Delete checked row in MVC using JQuery 【发布时间】:2018-11-02 12:47:42 【问题描述】:

如何使用 jquery 从 asp.net MVC 中的数据库中删除已检查的表行 这是我的代码,请帮帮我。我试过了,但是如果有人有建议,这不起作用,请给我一些。

function saveOrder(data) 
        return $.ajax(
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            type: 'POST',
            url: "/Bill/SaveOrder",
            data: data,
            success: function (result) 
                alert(result);
                location.reload();
            ,
            error: function () 
                alert("Error!")
            
        );
    
 var selectedValues = [];
            $.each($("#empsToDel"), function () 
                
                selectedValues.push(
                   ID = $("input:checked").val()
                )
            );
            var data = JSON.stringify(
            Delete:selectedValues
            );
<table>
  <tr>
   <th></th>
   <th>@html.DisplayNameFor(model => model.Product.ProductName)</th>
	</tr>
 @foreach (var item in Model)
  

 <tr id="new">
 <td><input type="checkbox" class="checkbox" value="@item.ID" name="empsToDel" id="empsToDel" /></td>
  <td>@Html.DisplayFor(modelItem => item.Product.ProductName)</td>
</tr>

</table>
<input id="saveOrder" type="submit" class="btn btn-default" value="ok" />

这是我的控制器

【问题讨论】:

为什么只添加了控制器代码作为截图? 调试时,具体是在哪里首次失败?您在这里有几个活动部分,哪一个没有达到您的预期? 还有javascript和html代码。 它没有显示错误,但它也不起作用 它没有将数据传递给控制器​​我认为问题出在客户端。 【参考方案1】:
    <table>
    <tr>
      <th></th>
      <th>@Html.DisplayNameFor(model => model.Product.ProductName)</th>
    </tr>
 @foreach (var item in Model)
  

    <tr id="new'@item.ID'">
       <td><input type="checkbox" class="checkbox" value="@item.ID" 
       name="empsToDel" id="empsToDel'@item.ID'" /></td>
       <td>@Html.DisplayFor(modelItem => item.Product.ProductName)</td>
    </tr>
  
</table>
<input id="saveOrder" type="submit" class="btn btn-default" value="ok" />


$("#saveOrder").click(function ()
 
          var selectedValues = new Array();
          $(".checkbox:checked").each(function () 
               selectedValues.push($(this).val());
           );

         var clientIdList = selectedValues.join();

       $.ajax(
        
            type: "POST",
            url: '@Url.Action("SaveOrder", "Bill")',
            data:  clientIdList: clientIdList ,
            beforeSend: function ()                    
            ,
            success: function (response) 
               alert(result);
               location.reload();
            ,
            complete: function () 

            ,
            error: function () 
        );

 );

BillController.cs

    public ActionResult SaveOrder( string clientIdList = null)
        
            if (clientIdList != "")
            
                var clientIds = clientIdList.Split(',').Select(x => 
                         Int64.Parse(x)).ToArray();
            
        

希望这对您有所帮助。

【讨论】:

以上是关于如何使用 JQuery 在 MVC 中删除选中的行的主要内容,如果未能解决你的问题,请参考以下文章

Jquery如何删除table里面checkbox选中的多个行

Javascript jQuery插件DataTables取消选择元素

如何使用从 Spring MVC 发回的 JSON 对象填充 jQuery 数据表的行?

jquery easyui如何获取被选中的checkbox的id然后将其页面包括数据库数据删除,我的前台页面是这样写的

JQuery 仅将选中的行添加到数组

jquery easyui datagrid 在翻页以后仍能记录被选中的行及刷新设置选中行数据