麻烦将JSON字符串化数组传递给PageMethod

我无法将JSON字符串化数组传递给PageMethod

[{ "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "8", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }, { "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "9", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }, { "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "5", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }, { "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "13", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }, { "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "6", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }, { "StartDate": "3/1/2011", "EndDate": "3/31/2011", "UserId": "11", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" }] 

当我得到这个ajax请求时,’jsonText’包含上面列出的数据

  function GetUserSchedules() { var jsonText = $.toJSON(arrParams); $.ajax({ type: "POST", url: "/myurl/jquery.aspx/GenerateUserSchedules", data: "{" + jsonText + "}", contentType: "application/json", dataType: "json", success: AjaxSucceeded , error: AjaxFailed }); } 

Pagemethod:

  [System.Web.Script.Services.ScriptMethod] [System.Web.Services.WebMethod] public static void GenerateUserSchedules(Data[] data) { //do stuff; will return data but for now, just keeping it like this System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); } 

DataClass:

 [Serializable] public class Data { public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public int UserID { get; set; } public string ViewSelectedValue { get; set; } public string ViewSelectedItem { get; set; } public string OrgSelectedValue { get; set; } } 

每次发送ajax请求时,都会执行错误function。 我究竟做错了什么?

这是日期的常见问题。 JavaScriptSerializer需要以下格式的日期才能成功解析它们:

 { "StartDate": "\/Date(983401200000)\/", "EndDate": "\/Date(985989600000)\/", "UserId": "8", "DdlViewSelectedValue": "zzz#", "DdlViewSelectedItem": "zzz", "DdlOrgSelectedValue": "8" } 

其中983401200000表示自1970年1月1日以来的通用协调时间(UTC)中的毫秒数。

从文档中引用:

日期对象,以JSON表示为“\ /日期(刻度数)\ /”。 刻度数是一个正或负的长值,表示自UTC时间1970年1月1日午夜以来经过的刻度数(毫秒)。

支持的最大日期值为MaxValue(12/31/9999 11:59:59 PM),支持的最小日期值为MinValue(1/1/0001 12:00:00 AM)。