我正在使用jQuery 1.7.1,$ .ajax,Javascript,JSON和ASP.NET,並有一些問題。將表單提交給ASP.NET PageMethod時,並非所有表單字段都已序列化或爲空。當我調試代碼時,沒有什麼是錯的,所以也許你可以幫助我。jQuery/JSON和ASP.NET閱讀/序列化表單域
我提交表單,像這樣在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
}
要讀取和處理FORMDATA我使用的是類字段是需要在JavaScript/JSON和ASP.NET之間序列化。
public class field {
public string name { get; set; }
public string value { get; set; }
}
我的問題是有時候並不是所有的表單都發布了,或者是空的。我找不到調試它的問題,所以也許你可以幫我解決這個問題。請記住,表單可以有幾百個表單域。
我還在想,如果我現在使用的代碼是線程安全的,也許我必須處理我的表單數據與現在不同。
請幫
有時候字段丟失在哪裏:服務器還是客戶端? – Marc
在服務器端 – Ruutert
問題解決!我用一個靜態字段來存儲我的字段[],這是非常危險的,所以我現在有一個沒有靜態東西的新解決方案。 jQuery和SerializeForm很棒!那裏沒有問題。這是我的錯誤,使用靜態字段/屬性來處理表單數據 – Ruutert