0

. .

これをやったのは久しぶりで、さびを振り払おうとしています。

VS2010 を使用して ASP.NET で AJAX 構造をセットアップしようとしています。

次のようなJQueryフォーム送信があります(例のために大幅に簡略化されています):

function FormSubmit () {
    $.post('SomeHandler.asmx/SomeFunction', 
        $("#form1").serialize(), 
        function(data) {some data handler}
    );
}

私の "SomeHandler.asmx/SomeFunction" は、フォーム データを取得して処理する C# 関数です。

私の知る限り、SomeHandler.asmx は XML デシリアライズを前提としていますが、JQuery はそれを XML ではなく、HTML エンコードされた文字列としてシリアライズします。

例えるなら、一方は英語で話しているが、もう一方はフランス語を聞くことを期待している.

どうすればこれを回避できますか? (例として、フォームにテキスト フィールドがあるとします。これを「txtField」と呼び、ドロップダウン リストを「lstDropDown」と呼びます。)

よろしくお願いします。

4

1 に答える 1

1

asmx ファイルでは、json を受け入れて応答する Web メソッドで次の属性フラグを使用していることを確認してください。

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SomeWebMethod() 
{
  //blah
}

また、Web サービス クラスに次の属性フラグがあることを確認します。

[System.Web.Script.Services.ScriptService]
public class MyWebService : System.Web.Services.WebService
{
...
}

最後に 1 つ: クライアント側でデータをシリアル化する場合は、次の ajax セットアップを使用する必要があります。

 $.ajaxSetup({ contentType: "application/json; charset=utf-8" });
于 2012-12-07T16:14:36.827 に答える