發現了一篇關於使用jQuery消費代碼隱藏WebMethod的優秀文章。我正在嘗試將它應用到我的網站上。但是我一直得到以下錯誤,但我確保參數名稱相同。jQuery,JSON和ASP.NET PageMethods
$(".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:
[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;
}
完整的錯誤消息如下:
{ 「消息」: 「無效JSON原始:同上。」, 「堆棧跟蹤」:」在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\ r \ n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 深度個)\ r \ n在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(字符串 輸入,的Int32 depthLimit,JavaScriptSerializer串行個)\ r \ n在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer,String input,Type type,Int32 depthLimit)\ r \ n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize [T](String input)\ r \ n at 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.ArgumentException」}
它總是打LikesError ...
您拯救了我的一天!謝謝! – myoungjin