JQuery AJAX формы коллекции и другие пары ключ / значение - PullRequest
3 голосов
/ 13 сентября 2011

хорошо, так как я так и не получил ответ на свой вопрос здесь: флажки и переключатели в MVC FormCollection

Я думал, что выберу другой подход и просто найду значение переключателяна стороне клиента, и передать его как другую пару имя / значение в моем вызове ajax ... это была отличная идея, но я не могу заставить ее работать.

использование этого прекрасно работает для передачи моей формыколлекция:

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: formCollection,
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

, но когда я пытаюсь изменить свои данные на объект, подобный этому:

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: ({collection: formCollection}),
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

, он не полетит.Мне нужно сделать это, чтобы в конечном итоге я мог использовать это:

formCollection = $(':input');
        $.ajax({
            type: "POST",
            url: "/mycontroller/mymethod",
            data: ({collection: formCollection, radiobutton: radiobuttonValue}),
            dataType: "text",
            success: showConfirm,
            error: function (xhr, textStatus, errorThrown) {
                alert(xhr.responseText);
            }
        });

мой метод действия на контроллере выглядит следующим образом:

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult mymethod(FormCollection collection)
        {
}

любые идеи, почему, когда я изменяю данные, этоне работает?

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

Попробуйте использовать formCollection = $('form').serialize().

http://api.jquery.com/serialize

В результате получится строка, похожая на строку запроса GET, которую вы можете использовать непосредственно в первом примере кода.

0 голосов
/ 13 сентября 2011

// сначала попробуйте получить значение поля, которое решает проблему formCollection = $ (': input'). val ();

...