1

最終的にWebメソッドがある程度機能するようになりましたが、今はjsonオブジェクトだけを返すようにしようとしています. 私のjavascriptメソッドは以下の通りです:

function PopulateRooms(e) {
           var idx = e.selectedIndex;
           var dcId = JSON.stringify('{ dataCenterId:' + e.options[idx].value + '}', null, 2);
           var pageUrl = '<%=ResolveUrl("~/WebService/AVWebService.asmx")%>';

           $.ajax({
               url: pageUrl + '/GetRooms',
               type: 'post',
               contentType: 'application/json; charset=utf-8',
               dataType: 'json',
               data: dcId,
               success: OnRoomsReceived,
               error: OnErrorCall
           });
       }

dcId は一意の識別子です。私は新しいブラウザのみをターゲットにしているので、別のライブラリは必要ないことを読みました。JSON.stringify() メソッドを使用するだけです。しかし、そうすると、エラー 500 が表示されます: タイプ \u0027\System.String\u0027 のオブジェクトをタイプ ...IDictionary に変換できません。

ただし、JSON.stringify() を取り出すと、無効な JSON プリミティブ エラーが発生します。Web メソッドに ID を渡すにはどうすればよいですか?

4

2 に答える 2

0

js 文字列を json に変換しようとしていますが、必要なのはオブジェクトを json に変換することです。

var dcId = JSON.stringify({ dataCenterId: e.options[idx].value });
于 2013-04-11T18:41:47.407 に答える
0

$.Ajax データ プロパティは javascript オブジェクトを取るため、stringify がまったく必要かどうかはわかりません。

var dcId = { dataCenterId: e.options[idx].value };
于 2013-04-11T18:42:52.017 に答える