0

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

1 回答 1

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,这取决于你想如何真正处理坏数据

于 2013-06-24T15:13:31.277 回答