剑道日期选取器 - 将不正确的日期格式传递给控制器

本文关键字:日期 格式 控制器 选取 不正确 | 更新日期: 2023-09-27 17:57:09

我正在使用KendoDatePicker,我在我的应用程序中使用它。但是,我突然遇到了以错误格式传递日期的问题。

  @(Html.Kendo().DatePicker()
            .Name("ToDate")
            .Min(DateTime.Today.AddYears(-1)) //Set the min date of the DatePicker.
            .Max(DateTime.Today) //Set the min date of the DatePicker.
            .Value(DateTime.Today.ToString("dd/MM/yyyy")) // I have also just set DateTime.Today, without formating as string

我使用以下JS函数从日期选择器中检索日期:

function getDatePickerValue() {
 var toDate= $("#ToDate").val();
   return {
            transactionToDate: toDate
        }
}

然后,我将此值传递给我的控制器,控制器获取日期并筛选网格。 这是正在传递的内容(如我的网络调试器所示):交易日期:"01/04/2016"

这是我的控制器方法

 public JsonResult GetCustomerElectronicTransactions([DataSourceRequest] DataSourceRequest request, DateTime? transactionToDate){}

我的控制器将日期识别为 MM/DD/YYYY,但它实际上被传递为 DD/MM/YYYY,所以正在发生的事情是我的月份和天数在通过时被切换。

有人有什么建议吗?我不明白为什么这突然给我带来了问题,我已经在其他控制器/视图中使用了这种确切的设置而没有问题。

思潮?

剑道日期选取器 - 将不正确的日期格式传递给控制器

问题与我在 JS 中获取日期选择器值的方式有关。
我改变了:

function getDatePickerValue() {
 var toDate= $("#ToDate").val();
   return {
            transactionToDate: toDate
        }
}

自:

function getDatePickerValue() {
 var toDate= $("#ToDate").data("kendoDatePicker").value();
   return {
            transactionToDate: toDate
        }
}