私のWebサービスに自分のAjaxデータを投稿すると、このエラーが発生します。私は何度も試してみましたが、jsonの文字列を返すようにコードを変更しましたが、毎回失敗します。私がやっていることは、私が投稿したデータを返信して動作することを知っているからです。私は答えを探しましたが、他の選択肢を試しましたが、ここで結果が得られないのはエラーです。無効なWebサービスコール、パラメータ u0027filters u0027の値がありません
{"メッセージ:"パラメータが不足しています:\ u0027filters \ u0027 "、" StackTrace ":" System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target、IDictionary 2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary
2パラメータ)\ System \ WebService.RestHandler.InvokeMethod rawParams)\ R \ nはSystem.Web.Script.Services.RestHandler.ExecuteWebServiceCall(のHttpContextコンテキスト、WebServiceMethodData methodData)」、 "ExceptionTypeで": "のSystem.InvalidOperationException"}
のjQuery:
data = [{'Name': 'Acer', 'Count': 1 }, {'Name': 'HP', 'Count': 2 }]
function getProducts(json, pageIndex, pageSize) {
$.ajax({
type: 'POST',
url: '/website2/WebServices/GetProducts.asmx/GetProductsAndFilters',
data: "{'data' : {'filters':" + JSON.stringify(json) + ", 'PageIndex' : " + pageIndex + ", 'PageSize' : " + pageSize + "}}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (responseText) {
//alert(responseText.d);
$('.console').html(responseText.d);
},
error: function (xhr, status, error) {
//var msg = JSON.parse(xhr.responseText);
//alert(msg.Message);
$('.console').html(xhr.responseText)
}
});
}
getProducts(data, "0", "2")
C番号:
public class dvals
{
public string Name { get; set; }
public string Count { get; set; }
}
public class data
{
public List<dvals> Filters {get;set;}
public string PageIndex { get; set; }
public string PageSize { get; set; }
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public data GetProductsAndFilters(data filters)
{
JavaScriptSerializer js = new JavaScriptSerializer();
//List<dvals> json = js.Deserialize<List<dvals>>(filters);
//data json = js.Deserialize<data>(filters);
var fname = "";
/*
foreach (var filter in filters)
{
if (filter.Name == "Acer")
{
fname = filter.Name;
break;
}
}*/
return filters;
}
送信したデータをサーバーに送り返すにはどうすればよいですか。私は年齢のasp.netに触れていない。あなたは私が始めることができるので表示することができます – ONYX
私は間違いを修正するために私のコードを更新しましたが、今私は私のコードの下部にある別のエラーを取得します。 – ONYX
戻り値の型を正しく設定すると(上記の例のコードのように)、ASP.NETは自動的に戻り値をJSONとしてシリアル化します。あなたが質問を更新したときのエラーは、サーバー側コードを更新して二重[de]シリアライゼーションを削除しなかったためです。 –