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 に答える