【问题标题】:Kendo dateTimePickerFor sending NULL or 01/01/0001 00:00 to controllerKendo dateTimePickerFor 向控制器发送 NULL 或 01/01/0001 00:00
【发布时间】:2019-04-05 12:42:58
【问题描述】:

视图工作正常,我可以看到日期时间选择器,但是当我单击提交时,日期时间字段为空(如果可以为空)或 01/01/0001 00:00 如果不可为空。

查看

<div class="form-group">
        @Html.LabelFor(model => model.LaycanStartDate, htmlAttributes: new { @class = "control-label col-md-12" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.LaycanStartDate, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.LaycanStartDate, "", new { @class = "text-danger" })
        </div>
 </div>

    <script>
        $(function () {
            $.validator.methods.date = function (value, element) {
                var date = moment(value, "DD/MM/YYYY HH:mm", true).format("DD/MM/YYYY HH:mm");
                return this.optional(element) || moment(date, "DD/MM/YYYY HH:mm", true).isValid();
            }
        });
    </script>

型号

[Display(Name = "LaycanStartDate", ResourceType = typeof(Resources.Resources))]
        [DataType(DataType.DateTime)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:mm}")]
        public DateTime LaycanStartDate { get; set; }

日期时间.cshtml

@model DateTime? 
@(Html.Kendo().DateTimePickerFor(m => m).HtmlAttributes(new { style = "width: 100%; max-width: 280px", title = "datetimepicker"}))

【问题讨论】:

  • 这意味着绑定失败,而不是控件发送 NULL 或零日期。可能是发布的本地化字符串不是 ISO8601 日期,其格式与服务器的格式不匹配。您可以使用 Fiddler 检查实际发布到服务器的内容
  • 日期的显示格式不必与发布到服务器的字符串格式相同。可以将输入框配置为使用dd/MM/YYYY,仍然可以将YYYY-MM-dd发布到服务器
  • 谢谢。因此 Fiddler 显示值正确通过,但在 ActionResult 中绑定后它是错误的。如何在发布时将格式更改回 ISO?
  • 正确地表示它们是 ISO8601 格式,即2019-03-28。否则它们是需要解析的字符串,可能会失败
  • 请在问题中发布。这是最重要的代码。您可以在那里设置Format、文化和绑定信息。以Check this question 为例。

标签: c# asp.net-mvc datetimepicker kendo-asp.net-mvc


【解决方案1】:

所以我最终能够解决这个问题的唯一方法是删除控制器上的绑定 [Bind(....

没有它允许值通过并且控制器可以处理格式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多