WCF получает дату в правильном формате. Важным дополнением является то, как мы передали дату в формате JSON в виде строки. Далее можно упростить, комбинируя ключ и начало строки / даты
ю, что есть много сообщений о том, как использовать WCF REST через JQuery / JSON, но я не могу заставить его работать. Я в настоящее время застрял в параметре даты. Ниже мой метод C #:
[OperationContract]
[WebInvoke]
[TransactionFlow(TransactionFlowOption.Allowed)]
string GoodRegister(DateTime pDtTimeStampTransac, Int32 pIDResource, Decimal pQty, enQtyLogType pQtyGoodLogType);
Ниже мой код JavaScript:
/// <reference path="../Scripts/jquery-1.4.1-vsdoc.js" />
/// <reference path="json.js" />
Date.prototype.toMSJSON = function () {
var date = '\\\/Date(' + this.getTime() + ')\\\/';
return date;
};
function botaoclick() {
var date = new Date().toMSJSON();
var datavar = {
'pDtTimeStampTransac': date,
'pIDResource': 1,
'pQty': 1
};
$.ajax(
{
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://desk01:9876/ShopFloorService/script/GoodRegister",
dataType: "json",
data: JSON.stringify(datavar),
//data: '{"pDtTimeStampTransac":date, "pIDResource":"teste", "pQty":"3"}',
error: jqueryError,
success: function (msg) {
alert("back");
var divForResult = document.getElementById("test");
divForResult.innerHTML = "Result: <b>" + msg.d + "</b>";
}
}
)
}
function jqueryError(request, status, error) {
alert(request.responseText + " " + status + " " + error);
}
Моя первая проблема заключается в том, что я продолжаю получать ошибку сериализации даты:
{"ExceptionDetail":{"HelpLink":null,"InnerException":{"HelpLink":null,"InnerException":{"HelpLink":null,"InnerException":null,"Message":"DateTime content '\\\/Date(1292616078638)\\\/' does not start with '\\\/Date(' and end with ')\\\/' as required for JSON.","StackTrace":" at System.Runtime.Serialization.Json.JsonReaderDelegator.ParseJsonDate(String originalDateTimeValue)\u000d\u000a at
Он говорит, что не начинается / не заканчивается, как начинается и заканчивается.
Мой второй вопрос: мне нужно будет проехать на счетчике или есть способ отправить его?