C# 将参数传递给WebMethod时出现jQuery Ajax获取错误
我使用的是web方法和ajax调用,但无法正确使用参数 我已经做了很多修复,但是没有人能够解决我的问题 我需要传递一个字符串并让我的web方法返回一个数据表,为什么需要将其作为json传递 以下是ajax调用:C# 将参数传递给WebMethod时出现jQuery Ajax获取错误,c#,jquery,ajax,serialization,C#,Jquery,Ajax,Serialization,我使用的是web方法和ajax调用,但无法正确使用参数 我已经做了很多修复,但是没有人能够解决我的问题 我需要传递一个字符串并让我的web方法返回一个数据表,为什么需要将其作为json传递 以下是ajax调用: var jsdata = '{category:' + category + '}'; var jstext = JSON.stringify(jsdata, null, 2); $.ajax({ type: "POST", url: "GIFacRequest.aspx/Get
var jsdata = '{category:' + category + '}';
var jstext = JSON.stringify(jsdata, null, 2);
$.ajax({
type: "POST",
url: "GIFacRequest.aspx/GetSubCategories",
data: jstext ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (dtSubCategory) {
PopulateSubCategoryDD(dtSubCategory);
},
error: function (response) {
$('body', document).html(response.responseText);
}
});
我的网络方法是:
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static DataTable GetSubCategories(string category)
{
}
我得到的错误如下:
“消息”:“无法将类型为\u0027System.String\u0027的对象转换为”
类型
\u0027System.Collections.Generic.IDictionary`2[System.String,System.Object]\u0027,“StackTrace”:
在
System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(对象
o、 类型类型,JavaScriptSerializer序列化程序,布尔错误,
对象&convertedObject)\r\n位于
System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(对象
o、 类型类型,JavaScriptSerializer序列化程序,布尔错误,
对象&convertedObject)\r\n位于
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer
序列化程序,字符串输入,类型,Int32 depthLimit)\r\n位于
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](字符串
输入)\r\n位于
System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext
上下文,JavaScriptSerializer序列化程序)\r\n位于
System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData
methodData,HttpContext\r\n位于
System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext
上下文,WebServiceMethodData
methodData)”,“ExceptionType”:“System.InvalidOperationException”
变量params
var jsdata='{category:'+category+'}'
是一个字符串
因此,行:JSON.stringify(jsdata,null,2)代码>,是冗余的(或者应该是冗余的)。只需设置数据:jsdata
请尝试使用此代码
var jsdata = '{category:' + category + '}';
$.ajax({
type: "POST",
url: "GIFacRequest.aspx/GetSubCategories",
data: jsdata ,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (dtSubCategory) {
PopulateSubCategoryDD(dtSubCategory);
},
error: function (response) {
$('body', document).html(response.responseText);
}
});
在中仅使用jsdata
ajax@SridharR然后我得到了错误消息:“无效的JSON原语:维护。”其中维护是我的变量。参考此?@SridharR我看到了那篇文章,但它没有提供任何答案。一个答案解释了问题,这就是为什么它会出现Votes删除那一行,然后我得到错误消息,“message”:“无效的JSON原语:维护。”其中维护是我试图传入的变量。谢谢:)这帮我做到了:)