当我使用通过IE向控制器发送数据的AJAX请求时,它正在发送空数据。当我使用Chrome或Firefox时,来自键/值对的数据存在于控制器的参数变量中。
这是我的javascript函数:
$(".input-group.date").datepicker({
autoclose: true
}).on('changeDate', function (ev) {
var schoolId = $(this).attr('data-schoolId');
var date = new Date(ev.date).toUTCString();
var schoolName = $(this).attr('data-schoolName');
$.ajax({
url: "@Url.Action("ChangeFulfillmentDate", "Admin")",
type: "POST",
data: {
'newDate': date,
'schoolId': schoolId
},
success: function (data) {
if (!data.success) {
var n = noty({
text: 'Hold up! Something went wrong...<br />' + data.message,
layout: 'top',
type: 'error',
killer: true,
closeWith: ['button']
});
}
else {
var n = noty({
text: 'Fulfillment date for ' + schoolName + ' updated successfully',
layout: 'bottomRight',
type: 'success',
timeout: 3000,
killer: true,
closeWith: ['hover']
});
}
},
error: function (xhr, status, error) {
var n = noty({
text: 'Hold up! Something went wrong...<br />' + xhr.responseText,
layout: 'top',
type: 'error',
killer: true,
closeWith: ['button']
});
}
});
});
我得到的ajax响应错误是:
The parameters dictionary contains a null entry for parameter 'newDate' of non-nullable type 'System.DateTime' for method 'System.Web.Mvc.JsonResult ChangeFulfillmentDate(System.DateTime, Int32)' in 'CurrReplenishment.Controllers.AdminController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
参数名称:参数
为什么我的AJAX调用没有为键/值对发送正确的值?我确保这些javascript变量中有数据,因为它适用于Chrome和Firefox。
答案 0 :(得分:1)
如前所述,您的问题在于日期。 JSon对日期非常奇怪,并且不允许您在定期发送数据时发送它。为了使它工作,你需要做这样的事情:
var mydate= dateFormat(yourdate, "mm/dd/yyyy HH:MM:ss");
你可以阅读更多关于它here(有点旧,但嘿,它有效)