首页 > 解决方案 > 从 json ajax 发送日期到 webapi 显示值 1/1/0001

问题描述

我有一个 jquery post ajax 调用,我在其中传递了一个模型,其中定义了包括 datetime 字段的属性。

此日期时间字段是使用 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);
    }

任何关于我如何纠正它的想法或建议都会很棒。

提前致谢!!!..

标签: jquerydatetimeasp.net-web-api

解决方案


您应该按MM/DD/YYYY以下方式使用日期格式:

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

这应该在您的 API 对象中正确填充日期。


推荐阅读