0

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

我的问题是,有时并非所有表单域都已发布或为空。我无法通过调试找到问题,所以也许你可以帮助我解决这个问题。请记住,表单可以有数百个表单域。

我还想知道我现在使用的代码是否是线程安全的,也许我必须处理与现在不同的表单数据。

请帮忙

4

1 回答 1

0

请确保您的表单域未被禁用

禁用的字段无法发布到服务器

参考

不提交禁用输入的值?

提交禁用字段

希望这可能会有所帮助!

于 2012-10-17T08:32:17.217 回答