传递Form Collection的jQuery Ajax

时间:2009-11-06 04:18:40

标签: c# jquery

我想知道是否可以在jQuery中的ajax方法中传递表单集合?

$.ajax({
        type: "POST",
        url: "/page/Extension/" + $("#Id").val(),
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $("#result").html(msg);
            false;
        }
    });

如果可以传入表单集合,那么当它到达c#中的方法时,你怎么读它?

3 个答案:

答案 0 :(得分:2)

您可以这样做:

var form = $("#myForm").serialize();
 $.post("/Home/MyUrl", form, function(returnHtml) 
        {
            //callback
        });

然后在C#方面,您应该能够做到这样的事情:

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MyUrl(FormCollection collection)
    {
        //do what you gotta do
    }

我认为这应该有用。

编辑:我刚刚注意到我只是假设你指的是ASP.NET MVC。如果没有,请告诉我,因为这个答案是针对MVC的。

答案 1 :(得分:1)

您可以使用ASP.NET MVC中的Ajax.BeginForm方法。它将使用Microsoft的ajax来执行请求,但您可以在完成后执行JQuery方法。或者,您可以使用UpdatePanel并在UpdatePanel加载后注册javascript以与ScriptManager一起运行。您可以尝试的另一件事是使用如下所示的jquery:$(':input')获取所有输入,textarea,select和按钮元素(JQuery文档)的集合,并将其作为数据传递到您的请求中。< / p>

答案 2 :(得分:1)

让这个工作一切正常,它返回FormCollection中的输入表单集合

input = $(':input')
$.ajax({
    type: "POST",
    url: "/page/Extension/" + $("#Id").val(),
    data: input,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        $("#result").html(msg);
        false;
    }
});