Kendo日期选择器 - 将不正确的日期格式传递给控制器​​

时间:2016-07-14 17:10:38

标签: javascript c# asp.net-mvc kendo-ui kendo-datepicker

我正在使用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
        }
}

然后我将此值传递给我的控制器,该控制器获取日期并过滤网格。这是传递的内容(如我的网络调试器中所示): 的 transactionToDate:&#34 01/04/2016"

这是我的控制器方法

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

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

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

思想?

1 个答案:

答案 0 :(得分:0)

问题与我在JS中获得datepicker值的方式有关 我改变了:

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

要:

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