Почему невозможно правильно отформатировать выходные данные Kendo UI datepicker? - PullRequest
0 голосов
/ 08 октября 2019
<form class="SecForms" action="@Url.Content("~/Credit/GenerateStatement")" method="post" id="credit_form">
    @Html.AntiForgeryToken()

    @Html.ValidationSummary(true)
    @Html.HiddenFor(o => o.PracticeId)
    <div class="setup-content" id="purchasing">
        <div class="row">
            <div class="col-sm-6">
                <div class="form-group">
                    <label class="control-label col-sm-5">Start Date</label>
                    <div class="col-sm-7 input-group">
                        @Html.Kendo().DatePickerFor(m => m.StartDate)
                            .Format("dd-MM-yyyy").Culture("en-GB")
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-sm-5">End Date</label>
                    <div class="col-sm-7 input-group">
                        @Html.Kendo().DatePickerFor(m => m.EndDate)
                            .Format("dd-MM-yyyy").Culture("en-GB")
                    </div>
                </div>
            </div>
        </div>

        <div class="BDuttonBar">
            <div class="BButtRightOptom">
                <button type="submit" class="btn btn-success lyprocess" type="submit" onclick="document.getElementById('spinny').style.display = 'block';">Generate</button>

                <i class="fa fa-circle-o-notch" fa-spin loadingSpinner" id="spinny" style="font-size:24px;float:right;display:none;"></i>
            </div>
        </div>
    </div>
</form>

Несмотря на то, что он явно установил формат для DatePickers, он все еще пытается вывести с датами, отформатированными как 2019-30-09 (для 30 сентября). Если выбрана дата, подобная этой, и я подозреваю, что любая дата с днем ​​месяца больше 12, форма не будет отправлена.

Я пытался установить Culture = ... в верхней части страницы. согласно официальному руководству по глобализации Telerik DatePicker , но это ни на йоту не изменило.

В качестве обходного пути (см. ниже) я перешел и переформатировал даты в ACTUAL Значения DateTime, но, как уже упоминалось ранее, невозможность отправить форму для выбора конкретных дат остается проблемой.

[HttpPost]
public ActionResult GenerateStatement(GenerateStatementViewModel model)
{
    if (ModelState.IsValid)
    {
        // Recreate the datetimes from the inputs because everything is stupid and nothing formats properly.
        var startDate = new DateTime(model.StartDate.Year, model.StartDate.Day, model.StartDate.Month);
        var endDate = new DateTime(model.EndDate.Year, model.EndDate.Day, model.EndDate.Month);

        // Continue work processing the form.
    }
}

Я не знаю, что еще можно попробовать. Как мне заставить эту нелепую ерунду Telerik работать на самом деле, как указано?

Когда я проверяю информацию для Kendo.Mvc.dll, она показывает, что Версия - 2019.1.115.440 (часть Kendo Web Extensions для ASP.NET MVC в Telerik 2019R1 suite)

...