2016-07-11 5 views
0

Это мой контроллерКак удалить несколько строк с помощью флажка в MVC?

[HttpPost] 
public ActionResult Delete(IEnumerable<int> idDelete) 
{ 
    foreach(var item in idDelete) 
    { 
     var delete = db.ExamPolicies.SingleOrDefault(s => s.ExamPolicyID == item); 
     db.ExamPolicies.Attach(delete); 
     db.ExamPolicies.Remove(delete); 
    } 
    db.SaveChanges(); 
    return RedirectToAction("Display"); 
} 

И это мой вклад

@using (Html.BeginForm("Delete", "ExamPolicy", FormMethod.Post)) 
{ 
    <div class="btn-group"> 
     <input type="submit" value="Delete All" /> 
    </div> 
} 

это мой флажок

<input type="checkbox" class="checkboxes" value="@item.ExamPolicyID" name="ExamPolicyIDs"/> 

Я не знаю, почему мой код не так? Пожалуйста, помогите мне

+0

Куда ты флажки внутри ''

тегов? И ваши флажки имеют 'name =" ExamPolicyIDs ", поэтому метод POST должен быть' public ActionResult Delete (IEnumerable ExamPolicyID) ' –

+0

Я исправил метод Delete. флажки находятся в Html.BeginForm. Но это все еще erorr в foreach (элемент var в ExamPolicyID) – Wind

+0

Какая ошибка? (мы не психические) –

ответ

0

Изменить Удалить действие, как это:

[HttpPost] 
public ActionResult Delete(IEnumerable<int> ExamPolicyIDs) 
{ 
    foreach (var item in ExamPolicyIDs) 
    { 
     var delete = db.ExamPolicies.FirstOrDefault(s => s.ExamPolicyID == item); 
     if (delete != null) 
     { 
      db.ExamPolicies.Remove(delete); 
     } 
    } 
    db.SaveChanges(); 
    return RedirectToAction("Display"); 
}