我创建了以下JSON WCF服务,它接受.NET System.DateTime
值作为输入参数:
[OperationContract]
[WebGet(ResponseFormat=WebMessageFormat.Json)]
ReclaimedH2OMetric GetCurrentReclaimedH2OMetric(System.DateTime currentDate);
当我尝试在网页中使用jQuery
使用服务时,出现以下错误:
服务器在处理请求时遇到错误。例外 消息是'SqlDateTime溢出。必须在1/1/1753 12:00:00之间 AM和12/31/9999 11:59:59 PM。'
这是我的jQuery代码:
var rawResults;
var currentDate = new Date('10/1/2012');
var jsonDate = '\\/Date(' + currentDate.getTime() + ')\\/';
$.ajax(
{
async: false,
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://www.mydomain.com/Dashboard_WaterResources/WCFService/Dashboard.svc/GetCurrentReclaimedH2OMetric",
dataType: "json",
data: '{"currentDate": "' + jsonDate + '"}',
success: function (results) {
rawResults = results;
},
error: function (xhr) {
alert(xhr.responseText);
}
});
以下代码行var jsonDate = '\\/Date(' + currentDate.getTime() + ')\\/';
尝试使用this问题作为参考,以适当的JSON格式设置日期格式
答案 0 :(得分:0)
答案 1 :(得分:0)
我修改了WCF服务签名以接受long
数据类型而不是System.DateTime
对象。
另外,我遇到了如何格式化data
jQuery调用的ajax
属性的问题。以下是更新后的代码:
var rawResults;
var currentDate = new Date('10/1/2012 12:00 AM');
var jsonDate = ConvertDateToTicks(currentDate);
$.ajax(
{
async: false,
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://localhost/Dashboard_WaterResources/WCFService/Dashboard.svc/GetCurrentReclaimedH2OMetric",
data: { dateInTicks: jsonDate },
success: function (results) {
rawResults = results;
},
error: function (xhr) {
alert(xhr.responseText);
}
});