我很困惑为什么我的控制器没有收到来自jquery datepicker的startDate参数..
我的想法是它与格式有关。
在这种情况下,我无法使用模型进行表单发布。
该参数将作为null进入操作。
$.ajax({
url: '@Url.Action("myAction")',
type: 'GET',
cache: false,
data: { startDate: $('#startDate').val(), endDate: $('#endDate').val() },
success: function (result) {
$('#updateDiv').html(result);
}
});
控制器
public ActionResult myAction(DateTime? startDate, DateTime? endDate)
我也试过了;
startDate: $.datepicker.formatDate('dd/mm/yy', new Date())
答案 0 :(得分:4)
是的,这可能是格式问题 - 我忘记了确切的原因。
我建议将控制器操作参数更改为string
类型,然后您可以手动以正确的格式解析它们,这是我一直这样做的方式,并且自从转移到此方法后从未遇到任何问题。
这样的事情:
public ActionResult myAction(string startDate, string endDate)
{
DateTime? startDT = null;
if(!string.IsNullOrWhitespace(startDate))
{
startDT = DateTime.ParseExact(startDate, "dd/MM/yyyy", null);
}
}
可能更好地使用TryParseExact
,取决于您真正想要处理错误数据的方式