我正在使用 jQuery 1.7.1、$.ajax、Javascript、JSON 和 ASP.NET,但遇到了一些问题。将表单提交到 ASP.NET PageMethod 时,并非所有表单域都被序列化或为空。当我调试代码时,没有任何问题,所以也许你可以帮助我。
我在javascript中提交这样的表格
function SaveFormData() {
var fields = $("form").serializeArray();
var myData = { 'projectId': projectId, 'fields': fields };
myData = JSON.stringify(myData);
$.ajax({
type: "POST",
url: "/w2/AspNetPage.aspx/SaveForm",
contentType: "application/json; charset=utf-8",
timeout: (1000 * 60 * 10),
data: (myData),
dataType: "json",
success: function () {
alert('done');
},
error: function () {
alert('error');
}
});
}
我的 AspNetPage.aspx 包含 webmethod SaveForm:
[WebMethod]
public static string SaveForm(int projectId, field[] fields) {
// do the processing here
}
为了读取和处理表单数据,我使用了在 javascript/JSON 和 ASP.NET 之间进行序列化所需的类字段。
public class field {
public string name { get; set; }
public string value { get; set; }
}
我的问题是,有时并非所有表单域都已发布或为空。我无法通过调试找到问题,所以也许你可以帮助我解决这个问题。请记住,表单可以有数百个表单域。
我还想知道我现在使用的代码是否是线程安全的,也许我必须处理与现在不同的表单数据。
请帮忙