2016-07-14 5 views
1

Я использую KendoDatePicker, я использую его по всему моему приложению. Тем не менее, у меня внезапно возникает проблема с датой передачи в неправильном формате.Kendo Date Picker - Передача неправильного формата даты в контроллер

@(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: «01/04/2016»

Это мой метод контроллера

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

Мой контроллер признает дату, MM/DD/YYYY, но это фактически передается как DD/MM/YYYY, так что происходит, когда мои месяцы и дни переключаются при передаче.

Есть ли у кого-нибудь предложения? Я не понимаю, почему это внезапно дает мне проблему, я использовал эту точную настройку в других контроллерах/представлениях без проблем.

Мысли?

+0

может быть, культура не правильно установлен или был перепутались где-то. вы можете попробовать добавить эту строку в web.confog '' –

ответ

0

Проблемы были связаны с тем, как я получал значение datepicker в JS.
я изменил:

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

To:

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