2012-10-17 30 views
0

我正在使用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; } 
} 

我的問題是有時候並不是所有的表單都發布了,或者是空的。我找不到調試它的問題,所以也許你可以幫我解決這個問題。請記住,表單可以有幾百個表單域。

我還在想,如果我現在使用的代碼是線程安全的,也許我必須處理我的表單數據與現在不同。

請幫

+0

有時候字段丟失在哪裏:服務器還是客戶端? – Marc

+0

在服務器端 – Ruutert

+0

問題解決!我用一個靜態字段來存儲我的字段[],這是非常危險的,所以我現在有一個沒有靜態東西的新解決方案。 jQuery和SerializeForm很棒!那裏沒有問題。這是我的錯誤,使用靜態字段/屬性來處理表單數據 – Ruutert

回答