Drag and Drop не попадает в корзину

Я могу перетаскивать изображения обложек альбомов, и они клонируются и возвращаются в исходное место, когда их удаляют с кнопки корзины, но когда я бросаю их на кнопку корзины, корзина не обновляется, она просто возвращается к своему исходному состоянию. штат. Почему это происходит?

        $("#droppable").droppable({
            drop: function (event, ui) {
                var AlbumToAdd = ui.draggable.data("id");
                if (AlbumToAdd != '') {
                    // Perform the ajax post
                    $.post("/ShoppingCart/DragToCart", { "id": AlbumToAdd },
                        function (data) {
                            // Successful requests get here
                            // Update the page elements
                            $('#cart-status').text("Cart (" + data.CartCount + ")");
                        });
                }
            }
        });

Контроллер

//
// GET: /Store/DragToCart/5
public ActionResult DragToCart(int id)
{
    // Retrieve the album from the database
    var addedAlbum = storeDB.Albums
        .Single(album => album.AlbumId == id);

    // Add it to the shopping cart
    var cart = ShoppingCart.GetCart(this.HttpContext);

    cart.AddToCart(addedAlbum);

    var results = new DragToCartViewModel
    {
        Message = Server.HtmlEncode(addedAlbum.Title) +
            "Your cart has been updated",
        CartTotal = cart.GetTotal(),
        CartCount = cart.GetCount(),
        AddedId = id
    };
    return Json(results);

Комментарий, если вы хотите увидеть больше кода


person JaredH20    schedule 30.08.2011    source источник


Ответы (1)


Вы узнали, какая часть кода не работает? Это сбрасываемый JS или контроллер? Если поставить alert("blah"); в вашем JS вы можете узнать, какой код не срабатывает.

person Willem Oostendorp    schedule 30.08.2011
comment
Я добавил оповещение, и ничего не происходит, оповещение не отображается, и оно просто делает то, что делало раньше - person JaredH20; 30.08.2011
comment
а куда вы поставили оповещение? Если вы поставите туда // Perform the ajax post и // Update the page elements с разными значениями, вы увидите, какой из них не срабатывает. - person Willem Oostendorp; 30.08.2011
comment
Я добавил оповещения, как вы сказали, но оповещения не появляются - person JaredH20; 31.08.2011
comment
Тогда либо что-то пойдет не так в этой строке: var AlbumToAdd = ui.draggable.data("id");, либо ваш выпадающий элемент не имеет class="droppable". Если это первое, попробуйте предупредить переменную AlbumToAdd и посмотреть, что она говорит. Если он не определен, значит, в этой строке что-то не так. - person Willem Oostendorp; 31.08.2011
comment
Я поместил предупреждение в функцию сброса, и оно не срабатывает, поэтому оно даже не регистрирует, что что-то происходит. - person JaredH20; 31.08.2011
comment
Вы дали своей кнопке корзины класс dropppable? И если это так, вы загрузили jquery-ui с выбранным droppable (вы можете не включать эту функцию при загрузке jquery-ui) - person Willem Oostendorp; 31.08.2011
comment
Тогда я могу только посоветовать создать простой новый html-файл, содержащий всего 2 элемента: перетаскиваемый элемент и выпадающий элемент, и постараться сделать его как можно более простым. Попробуйте заставить его работать (только с предупреждением в функции droppable) и попытайтесь выяснить, что вы делаете неправильно. - person Willem Oostendorp; 31.08.2011