Jquery ajax发布日期

时间:2013-06-24 15:10:35

标签: jquery ajax asp.net-mvc asp.net-mvc-4 jquery-ui-datepicker

我很困惑为什么我的控制器没有收到来自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())

1 个答案:

答案 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,取决于您真正想要处理错误数据的方式