Как удалить список элементов внутри списка? - PullRequest
0 голосов
/ 12 декабря 2018

Я работаю над приложением asp.net MVC, у меня есть список выбранных элементов из таблицы продуктов, которая содержит (ProductName, Price);

У меня есть 2 кнопки, одна из которых очищает один элемент(рабочий)

Частичное представление DeleteOneItem:

@using (Ajax.BeginForm("DeleteItemCheckbox", "Home", new AjaxOptions() { 
 UpdateTargetId = "div_print", InsertionMode = InsertionMode.Replace }))
        {
    <input type="number" name="ProductId" hidden value="@item.ProductId" />
    <div>Product Name :   @item.ProductName    </div>
    <p>Product Price :  @item.ProductPrice $  </p>
    <input type="submit"class="btn btn-primary btn-info" value="Delete Item" /><br />
}

Метод DeleteOneItem:

 public ActionResult DeleteItem(int ProductId)
    {

        List<Product> AddedToCart = new List<Product>();
        AddedToCart = (List<Product>)Session["listOfSelectedItems"];

        var deleteSelecedItem = AddedToCart.Where(a => a.ProductID.Equals(pId)).FirstOrDefault();

        AddedToCart.Remove(deleteSelecedItem);

        var viewModel = new MyViewModel
        {
            itemsNumbers = Convert.ToInt32(Session["items"]),
            SumVM = Convert.ToInt32(Session["sum"]),
            AddToCartList = AddedToCart
        };

        return View("Cart", viewModel);
    }

И другой, который удаляет выбранные элементы, но я не могу понять этокак это сделать.

Сначала я поместил все выбранные элементы в список, добавив проверочный вход рядом с каждым элементом.

<input class="form-check-input" type="checkbox" value="@item.ProductId" 
id="defaultCheck1" name="employeeIdsToDelete">
 ....
 ....
 ....
 <input type="submit"class="btn btn-primary btn-info" value="Delete Selected  Items" /><br />

И в контроллере я смог получить список всех выбранных элементов.идентификаторы предметов

public ActionResult DeleteItemCheckbox(List<int> employeeIdsToDelete)
    {
     var ListP=employeeIdsToDelete.ToList();
     ..

теперь у меня уже есть список ItemsSelectedToBuy, который содержит выбранный товар, который пользователи хотят купить.это в сеансе ["listOfSelectedItems"];

Я хочу удалить все элементы, выбранные в employeeIdsToDelete из сеанса ["listOfSelectedItems"], который является списком выбранного продукта.

Ответы [ 4 ]

0 голосов
/ 12 декабря 2018

Это сработало так:

 public ActionResult DeleteItemCheckbox(List<int> employeeIdsToDelete)
    {

        List<Product> AddedToCart = new List<Product>();
        AddedToCart = (List<Product>)Session["listOfSelectedItems"];

        var deleteSelecedItem = AddedToCart.Where(a => 
         a.ProductID.Equals(employeeIdsToDelete)).FirstOrDefault();

        List<Product> finallist = AddedToCart
                              .Where(x => !employeeIdsToDelete.Contains(x.ProductID))
                              .ToList();
0 голосов
/ 12 декабря 2018
List<Product> AddedToCart = new List<Product>();
AddedToCart = (List<Product>)Session["listOfSelectedItems"];

foreach (int item in employeeIdsToDelete)
{
     employeeIdsToDelete.RemoveAll(X => X.ProductID == item);
}
0 голосов
/ 12 декабря 2018
    public ActionResult DeleteItemCheckbox(List<int> employeeIdsToDelete)
    {
            var ListP = employeeIdsToDelete.ToList();
            List<int> listOfSelectedItems = (List<int>)Session["listOfSelectedItems"];
            List<int> finallist = listOfSelectedItems
                                  .Where(x => !employeeIdsToDelete.Contains(x))
                                  .ToList();
            Session["listOfSelectedItems"] = finallist;
    }
0 голосов
/ 12 декабря 2018
public ActionResult DeleteItemCheckbox(List<int> employeeIdsToDelete)
{
    var ListP = employeeIdsToDelete.ToList();

    foreach (var item in ListP)
    {
        (List<Product>)Session["listOfSelectedItems"].RemoveAll(x => x.ID == item);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...