0

私はいくつかのコードに取り組んでいましたが、なぜこれが常に失敗するのか理解できないようです。私はそれをデバッグしようとしましたが、aspページが参照しているのはブレークポイントにヒットしません。(おそらく、ページをフェッチしていないということですか??)。データの場合:パートIは、投稿の直前にJSON.stringify({variables})を実行して、それが機能するかどうかを確認しようとしましたが、機能しませんでした。

ここで私が間違っていることはありますか?

$.ajax({
        type: 'POST',
        url: 'AutoComplete.asmx/getWebFormDesignFieldContents',
        data: {
            'fe_name': "*",
            'count': 200,  //this might need to be adjusted slightly.  I may want to make it more OR less.
            'also_search_fe_desc': true,
            'opts': opts
        },
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (result) {
            //success
            $("div.modal").replaceWith($(result));
            $("div.modal").fadeIn();
        },
        error: function (result) {
            //error
            //alert("Error: "+result.statusText);
            $("div.overlay").fadeOut();
        }
    });

ASPのサーバーサイド部分には、次のものがあります。

public String getWebFormDesignFieldContents(String fe_name, int count, bool also_search_fe_desc, String opts)
{
   String retValue = "";
   ...
   return retValue;
}
4

2 に答える 2

2

[WebMethod]メソッドを属性で装飾する必要があります

[WebMethod]
public String getWebFormDesignFieldContents(
     String fe_name, 
     int count, 
     bool also_search_fe_desc, 
     String opts)

他に変更する必要があるのは、json形式です。文字列を渡す必要があります。

data:'{"fe_name": "*", "count": 200, "also_search_fe_desc": true, "opts":' + opts + '}'

使用することはできますJSON.stringifyが、古いブラウザではサポートされていないため、その状況に対処する必要がある場合があることを考慮に入れてください。

また、リターンロジックにも取り組む必要があります。今のところ、空の文字列が返されるのがわかります。より多くのコードを表示する場合は、それについてもサポートできます。

于 2012-07-03T15:32:06.400 に答える
0

retValueをjsonとしてエンコードする必要があります

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonresult = serializer.Serialize(retValue );
于 2012-07-03T15:32:29.853 に答える