0

次のようなメソッドがあります。

<WebMethod()> _
Public Function Search(ByVal q As String) As String

.net 2.0 から 3.5 に更新すると、これが壊れたようです。

返された値に対して data.split() を実行していますが、エラーが発生しています。返された値は単純な文字列ではなく、json 構造になっているようです。

以前の動作に戻す方法はありますか?

4

2 に答える 2

0

System.Web.Script.Services をインポートする必要があります

次に、この属性を追加してみてください。

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Xml)> _

どのように Web メソッドを呼び出していますか? JavaScriptを介して?

于 2010-12-08T17:54:26.870 に答える
0

同様の問題がありました。2.0 での Webmethod と jquery ajax 呼び出しの基本的なセットアップでは、文字列 (js では string 型) または文字列配列 (js では object 型) を返します。3.5 では常にオブジェクトを返し、返される実際のデータは .d の下にあります。文字列または文字列配列のようなプリミティブ。

これまでの私の最善の解決策は、.d をチェックする JavaScript メソッドでした。

    function getResponse(r){
        if(r.d!=null){
            return r.d;
        }else{
            return r;
        }
    }

移行のために 2.0 と 3.5 の両方の呼び出しをサポートする必要があり、2.0 が間もなくなくなるため、あまり多くのエネルギーを費やす必要はありません。

しかし、私はむしろより良い解決策を望んでいます。

于 2010-12-08T21:28:00.633 に答える