我有一个jQuery post ajax调用,我通过一个模型,其中定义了属性,包括dateTime字段。
使用Moment.JS传递此DateTime字段。在我检查值时,在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);
}
关于我如何纠正它的任何想法或建议,都很棒。
预先感谢!! ..
您是否可以将日期格式更改为以下。这应该解决您的Webapi。
moment($('#txtDocDate').val()).format('YYYY-MM-DD'),
将您的模型更改为
var model = {
"ID": 0,
"DocNumber": $('#txtDocNo').val(),
"DocDate": $('#txtDocDate').val(),
"Amount": $('#txtAmt').val(),
"Items": arrErrorData
};
或您想在API模型中格式化日期然后,请将UR API DateTime对象更改为字符串
在将日期字符串转换为JSON字符串之前,将您的日期字符串解析为日期对象。在服务器API处接收此日期字符串作为日期对象。
var model = {
"ID": 0,
"DocNumber": $('#txtDocNo').val(),
"DocDate": new Date($('#txtDocDate').val()),
"Amount": $('#txtAmt').val(),
"Items": arrErrorData
};
您应该以以下方式使用MM/DD/YYYY
格式:
moment($('#txtDocDate').val()).format('MM/DD/YYYY')
这应该在您的API对象中正确填充日期。
感谢您的答案,我这样解决了:
var model = {
"ID": 0,
"DocNumber": $('#txtDocNo').val(),
"DocDate": new Date(moment($('#txtDocDate').val())),
"Amount": $('#txtAmt').val(),
"Items": arrErrorData
};