使用JQuery ajax调用调用控制器

use*_*751 2 jquery asp.net-mvc-3

我有一个用户控件包含3个文本框和一个添加到aspx页面的按钮.单击它时应该对控制器进行ajax调用并传递文本框的数据,它应该返回一条消息....我怎么能这样做

Dar*_*rov 8

例:

<input type="text" name="foo" id="foo" />
<input type="text" name="bar" id="bar" />
<input type="text" name="baz" id="baz" />
<%= Html.ActionLink("send to controller", "Ajax", "Home", null, new { id = "ajaxLink" }) %>
Run Code Online (Sandbox Code Playgroud)

并在一个单独的JavaScript文件中,您可以ajaxify此链接:

$(function() {
    $('#ajaxLink').click(function() {
        var data = { 
            foo: $('#foo').val(),  
            bar: $('#bar').val(),  
            baz: $('#baz').val()
        };
        $.getJSON(this.href, data, function(result) {
            alert(result.message);
        });
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

以及将接收调用并返回JSON的相应控制器操作:

public class HomeController: Controller
{
    public ActionResult Ajax(string foo, string bar, string baz)
    {
        // TODO: do something with the arguments

        return Json(
            new { message = "Thanks for sending info" }, 
            JsonRequestBehavior.AllowGet
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:为赋值时删除了"new"关键字var data.