【问题标题】:jQuery / JSON and ASP.NET reading / serializing form fieldsjQuery / JSON 和 ASP.NET 读取/序列化表单字段
【发布时间】:2012-10-17 08:12:09
【问题描述】:

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

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

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

请帮忙

【问题讨论】:

  • 有时缺少哪些字段:服务器还是客户端?
  • 问题解决了!,我使用了一个静态字段来存储我的字段[],这非常危险,所以我现在有了一个没有静态内容的新解决方案。 jQuery 和 SerializeForm 效果很好!那里没有问题。使用静态字段/属性来处理表单数据是我的错误

标签: c# jquery ajax


【解决方案1】:

请确保您的表单字段未被禁用

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

参考

values of disabled inputs will not be submited?

submit disabled fields

希望这可能会有所帮助!

【讨论】:

  • 嗨,我确定表单字段没有被禁用
猜你喜欢
  • 2012-03-11
  • 2015-10-09
  • 2013-07-09
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
相关资源
最近更新 更多