Передача переменной в действие в jQuery - PullRequest
0 голосов
/ 29 ноября 2011

Я использую MVC2 с jquery.

Я пытаюсь открыть частичное представление в контейнере диалогового окна jquery, передавая itemID объекта, который нужно удалить.

Что яЯ делаю, чтобы выполнить это, передает действие, которое отрисовывает представление в jquery, которое я могу заставить работать без переменных.Если я попытаюсь передать идентификатор объекта, который нужно удалить, действие даже не сработает.Моя вероятная фольга - это то, где я передаю переменную.

Вот мой код jquery:

    $(function () {
        var itemToDelete
        $('#deleteDialog').dialog({
            autoOpen: false,
            width: 400,
            resizable: false,
            title: 'Delete Item',
            modal: true,
            open: function(event, ui) {
                //This calls the action if I don't try to pass in the variable
                $(this).load("<%: Url.Action("Delete") %>",
                    {  
                        item: itemToDelete 
                    });
                },
                buttons: {
                "Close": function () {
                    $(this).dialog("close");
                }
            }
        });

        $('#item-delete-button').click(function () {
            itemToDelete = $(this).find("input").val()
            $('#deleteDialog').dialog('open');
        });
    });

Вот как выглядит соответствующая часть представления.

<div id="item-delete-button" class="item-delete-button">
                        Delete
                        <%:Html.Hidden("item-delete-content", model.ItemID.ToString(), New With {.id = "item-delete-content", .class = "item-delete-content"})%>
                    </div>

Если я нажимаю «Удалить», происходит jquery и открывается пустое диалоговое окно.Если я не попытаюсь передать переменную "itemToDelete", то действие сработает нормально, но, конечно, я не уйду далеко, не зная, какой элемент я хочу удалить.

Так какЯ сказал, проблема в том, что я не могу передать правильную переменную своему действию.Вероятно, это простая ошибка, и я относительно новичок в jquery.

1 Ответ

0 голосов
/ 29 ноября 2011

Работает ли это, если заменить:

$(this).load("<%: Url.Action("Delete") %>",
                {  
                    item: itemToDelete 
                });

на это?

$(this).load('<%: Url.Action("Delete") %>?item=' + itemToDelete);
...