jQuery、JSON 和 ASP.NET 页面方法
Posted
技术标签:
【中文标题】jQuery、JSON 和 ASP.NET 页面方法【英文标题】:jQuery, JSON and ASP.NET PageMethods 【发布时间】:2011-12-27 11:00:24 【问题描述】:找到一篇关于使用 jQuery 使用代码隐藏 WebMethod 的精彩文章。我正在尝试在我的网站上应用它。但是,尽管我确保参数名称相同,但我不断收到以下错误。
$(".StreamLike").live("mouseover", function ()
var Id = $(this).parent().parent().find(".StreamIndex").html();
alert(Id);
$.ajax(
type: 'POST',
url: 'Default.aspx/GetLikes',
data: "Id": Id ,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: LikesSuccess,
error: LikesError
);
);
function LikesSuccess(result, userContext, methodName)
for (var i in result)
alert(result[i]);
网络方法:
[WebMethod]
public static string[] GetLikes(int Id)
List<Like> Likes = Like.GetById(Id, false);
string[] Senders = new string[Likes.Count];
for (int i = 0; i < Likes.Count; i++)
Senders[i] = Likes[i].Sender;
return Senders;
完整的错误信息如下:
"Message":"无效的 JSON 原语:Id。","StackTrace":" at System.Web.Script.Serialization.javascriptObjectDeserializer.DeserializePrimitiveObject()\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 深度)\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(字符串 输入,Int32 depthLimit,JavaScriptSerializer 序列化程序)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer 序列化程序、字符串输入、类型类型、Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](字符串 输入)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext 上下文,JavaScriptSerializer 序列化程序)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData 方法数据,HttpContext 上下文)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext 上下文,WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"
总是遇到 LikesError...
【问题讨论】:
【参考方案1】:试试这个...
数据:JSON.stringify( "Id": Id )
该帖子正在将您的“Id”对象转换为名称/值对。例如编号 = 12345。您必须先对对象进行字符串化。
【讨论】:
【参考方案2】:可以使用chrome的开发工具查看响应值
【讨论】:
以上是关于jQuery、JSON 和 ASP.NET 页面方法的主要内容,如果未能解决你的问题,请参考以下文章
ASP.net jQuery调用webservice返回json数据的一些问题
使用 jquery ajax 从 asp.net 网页表单页面调用 web api url
如何在 asp.net 中使用 JSON 和 JQuery 从 WebMethod 返回 DataTable?
使用 ASP.Net 和 JSON 格式实现 jQuery 的 jgGrid