MVC3 Ajax вызов контроллера - PullRequest
2 голосов
/ 14 июля 2011

Есть ли способ отправить форму, но она остается на странице?

Сейчас я отображаю таблицу объектов, но каждая строка имеет редактируемое значение, каждая строка в своей собственной форме Ajaxно когда я нажимаю кнопку обновления, он переходит к методу, но вся страница меняется.

1 Ответ

7 голосов
/ 14 июля 2011

Есть ли способ отправить форму, но она остается на странице?

Конечно, вы можете использовать AJAX:

@using (Html.BeginForm())
{
    ... some form input fields

    <input type="submit" value="Go" />
}

и затем ненавязчиво AJAXify эту форму в отдельном файле:

$(function() {
    $('form').submit(function() {
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function(result) {
                // TODO: handle the results of the AJAX call
            }
        });
        return false;
    });
});

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

$(function() {
    $('form').ajaxForm(function(result) {
        // TODO: handle the results of the AJAX call
    });
});

Другой альтернативой является использование помощника Ajax.BeginForm ASP.NET MVC 3:

@using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "success" }))
{
    ... some form input fields

    <input type="submit" value="Go" />
}

и затем обработчик успеха в javascript:

function success(result) {
    // TODO: handle the results of the AJAX call
}

вам также нужно будет добавить скрипт jquery.unobtrusive-ajax.js в дополнение к jquery на свою страницу, если вы хотите использовать Ajax.* помощники.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...