次のコードで DataTable を返す Web サービスを実行しようとしています。
$.ajax({
type: "POST",
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
//do things
}
});
Webサービスがクラスを返す場合、それは機能するため、入力パラメーターなどとは関係ありません。Webメソッドがデータテーブルを返す場合にのみ失敗します(データテーブルには、私が行っているテスト用に2列と2行しかありません)。
WebService クラスは [ScriptService] 属性で装飾されているので、ASP.NET が自動的に戻り値を JSON としてシリアル化すると考えました。データテーブルでは機能しないようです。
私が見つけた唯一の解決策は、文字列 (手動で JSON シリアル化されたオブジェクト) を返すことでしたが、このようにするのは適切ではないようです。
私は.Net 3.5でVisual Studio 2008を使用しています