Дата отправки из json ajax в webapi показывает значение 1/1/0001 - PullRequest
0 голосов
/ 17 мая 2019

У меня есть вызов jquery post ajax, в котором я передаю модель, в которой определены свойства, в том числе поле даты и времени.

Это поле даты и времени передается с помощью moment.js.В JQuery, когда я проверяю значение, это выходит нормально.Но когда я проверяю то же значение в моем вызове WebApi, то же поле даты показывает значение как 1/1/0001.

Ниже приведен мой код jquery:

var model = {
    "ID": 0,
    "DocNumber": $('#txtDocNo').val(),
    "DocDate": moment($('#txtDocDate').val()).format('DD-MM-YYYY'),
    "Amount": $('#txtAmt').val(),
    "Items": arrErrorData
};
function PostSync(targetUrl, model) {
var result = null;
$.ajax({
    url: targetUrl,
    data: JSON.stringify(model),
    dataType: 'json',
    type: 'POST',
    contentType: 'application/json',
    async: true,
    success: function (data) {
        if (data !== undefined) {
            result = data;
        }
    },
    error: function (data) {
        result = data.statusText;
    }       
});

return result;

}

Когда я проверяю свою дату здесь в модели, она показывает правильный формат и значение.Но когда я проверяю свой метод WebApi, он показывает 1/1/0001.

Ниже приведен мой метод WebApi:

public void Post([FromBody]InvoiceDetails InvoiceDetails)
    {
        _itemsbs.Add(InvoiceDetails);
    }

Любые идеи или предложения о том, как я могу его исправить, будутотлично.

Заранее спасибо !!! ..

Ответы [ 5 ]

0 голосов
/ 19 мая 2019

Спасибо за ответы, я решил это так:

var model = {        
    "ID": 0,
    "DocNumber": $('#txtDocNo').val(),
    "DocDate": new Date(moment($('#txtDocDate').val())),
    "Amount": $('#txtAmt').val(),
    "Items": arrErrorData
};
0 голосов
/ 17 мая 2019

Вы должны использовать формат MM/DD/YYYY для даты следующим образом:

moment($('#txtDocDate').val()).format('MM/DD/YYYY')

Это должно правильно заполнить дату в вашем объекте API.

0 голосов
/ 17 мая 2019

измените модель на

var model = {
"ID": 0,
"DocNumber": $('#txtDocNo').val(),
"DocDate": $('#txtDocDate').val(),
"Amount": $('#txtAmt').val(),
"Items": arrErrorData

};

OR Вы хотите отформатировать дату в вашей модели API Затем, пожалуйста, измените объект API DateTime на String

0 голосов
/ 17 мая 2019

Разобрать вашу строку Date в объект DATE, прежде чем преобразовать ее в строку JSON.На сервере API получите эту строку Date как объект Date.

var model = {
    "ID": 0,
    "DocNumber": $('#txtDocNo').val(),
    "DocDate": new Date($('#txtDocDate').val()),
    "Amount": $('#txtAmt').val(),
    "Items": arrErrorData
};
0 голосов
/ 17 мая 2019

Не могли бы вы изменить формат даты ниже. Это должно адресовать ваш webapi.

moment($('#txtDocDate').val()).format('YYYY-MM-DD'),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...