MVC3 Ajax调用Controller

时间:2011-07-14 15:51:30

标签: asp.net-mvc-3

是否有提交表格但是仍然在页面上?

现在我正在显示一个对象表,但每行都有一个可编辑的值,每行都有自己的Ajax表单,但是当我点击更新按钮时,它会转到方法,但整个页面都会改变。

1 个答案:

答案 0 :(得分:7)

  

是否有提交表格但是仍然在页面上?

当然,您可以使用AJAX:

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

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

然后在一个单独的文件中不引人注意地AJAX化这个表单:

$(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 plugin

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

另一种方法是使用ASP.NET MVC 3 Ajax.BeginForm帮助程序:

@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.*脚本。