最終的に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 を渡すにはどうすればよいですか?