我想知道是否可以在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#中的方法时,你怎么读它?
答案 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;
}
});