Я передаю дату из представления в контроллер ASP.NET MVC 5, используя kendo datepickerfor. Проблема в том, что kendo datepickerfor передает дату по умолчанию i.e: - 1/1/0001 12:00:00 AM для контроллера и не передает выбранную дату.Дата передачи от Kendo DatePickerДля моделирования модели с Ajax.BeginForm()
Модель (Bill.cs)
public DateTime BillTransactionDate { get; set; }
View (Bill.cshtml)
@using (Ajax.BeginForm("_SaveManualBillUpload", "Bill",null, new AjaxOptions { OnBegin = "return OnBillTransBegin()", HttpMethod = "POST", OnSuccess = "OnBillTranSuccess" }, new { @id = "frmBillTransaction" }))
{
@(Html.Kendo().DatePickerFor(m => m.BillTransactionDate).Format("MM/dd/yyyy").HtmlAttributes(new {data_toggle = "tooltip",
data_placement = "bottom", data_trigger = "focus", title = MW.Resource.Resources.HelpTransactionDate })
)}
BillController
public ActionResult _SaveManualBillUpload(BillTransactionDetail TransactionDetailModel)
{}
Вот в TransactionDetailModel, я получаю значение по умолчанию для кендо datepickerfor вместо выбранной даты из кендо datepickerfor. Если я выбираю дату менее 12, то я получаю надлежащую выбранную дату, но для дат, превышающих 12, кендо передает дату как 1/1/0001 на контроллер. Может кто-нибудь указать на ошибку? KendoErrorImage
Нет, это означает, что ничего не передается (и свойство инициализируется значением по умолчанию) –
@StephenMuecke Если я выбираю дату менее 12, то она передает правильную дату, но если я пропущу дату больше, чем 12, то он передает значение по умолчанию и ** ModelState.IsValid ** является ложным. Я получаю следующую ошибку: ** Значение «11/30/2016» недействительно для BillTransactionDate **. Кажется, что проблема связана с форматом даты. –
Затем культура на вашем сервере не соответствует формату, указанному в параметрах Kendo ('MM/dd/yyyy'). Я предполагаю, что ваша культура сервера 'dd/MM/yyy' –