Delete Multiple Items Using JSON in MVC

View
  1. <table class="table">  
  2.     @foreach (var role in Model) {  
  3.     <tr>  
  4.         <td>  
  5.             <input id="responsable1" name="checkResp" value="@role.id" type="checkbox" />  
  6.             <strong>@role.Name</strong>  
  7.         </td>  
  8.     </tr>  
  9.     }  
  10. </table>  
  11. <input id="DeleteBtn" type="button" value="Delete Selected" />  
  12. <script>  
  13.     $("#DeleteBtn").on("click", function() {  
  14.         var boxData = [];  
  15.         $("input[name='checkResp']:checked").each(function() {  
  16.             boxData.push($(this).val());  
  17.         });  
  18.         $.ajax({  
  19.             url: '/Roles/DeleteMultiple',  
  20.             data: {  
  21.                 RoleId: boxData.join(",")  
  22.             },  
  23.             cache: false,  
  24.             type: "POST",  
  25.             timeout: 10000,  
  26.             dataType: "json",  
  27.             success: function(result) {  
  28.                 window.location.reload();  
  29.             }  
  30.         });  
  31.     });  
  32. </script>  
Controller
  1. [HttpPost]  
  2. public JsonResult DeleteMultiple(string RoleId) {  
  3.     ApplicationDbContext db = new ApplicationDbContext();  
  4.     var RoleIds = RoleId.Split(',');  
  5.     foreach(var id in RoleIds) {  
  6.         int idConverted = Convert.ToInt32(id);  
  7.         Roles roleid = db.Roles.Find(idConverted);  
  8.         db.Roles.Remove(roleid);  
  9.     }  
  10.     context.SaveChanges();  
  11.     var message = "Selected roles have been deleted";  
  12.     return Json(message);  
  13. }  
DeleteMultiple - Action Name
Roles - Controller Name