jquery ajax を使用して配列を c# webmethod に渡そうとしています。
以下のコードは C# 4.0 では問題なく動作しますが、c# 2.0 では次の例外が発生します。誰でもこれを解決する方法を知っていますか?
JavaScriptコード
var myarray=new Array();
$.ajax({
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: "ClientSideMethods.asmx/ArrayTest",
data: { "values": JSON.stringify(myarray) }
}
).complete(function (data) {
alert('complete');
});
c# コード
[WebMethod(EnableSession = true)]
public void ArrayTest(List<string> values)
{
...
}
例外( firebug から)
System.InvalidOperationException: Request format is invalid: application/json; charset=utf-8.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
編集:contentType: "application/json; charset=utf-8",
投稿 を削除すると機能しますが、値は配列として受信されません
編集:コンテンツタイプをcontentType: "application/json
次のエラーに変更すると発生します
System.InvalidOperationException: AnywhereLogin Web Service method name is not valid.
at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)