3

我试图发布一个包含下拉列表的表单,其中包含值以及开始和结束日期和时间。问题是当我发布表格时,它基本上不会发布。而不是发布它是选择 dateTimePicker 输入(因为 html 结果中的蓝色边框)。我无法指出哪里出了问题。提前致谢!

DateTimePicker 部分

    @(Html.Kendo().DateTimePicker()
          .Name("dtStartDatum")
          .Value( DateTime.Today )
          .Format( "dd-MM-yyyy HH:mm" )
          .TimeFormat( "HH:mm" )
          .DateInput( true )
    )

    @(Html.Kendo().DateTimePicker()
          .Name("dtEindDatum")
          .Value( DateTime.Now)
          .Format( "dd-MM-yyyy HH:mm" )
          .TimeFormat( "HH:mm" )
          .Min(Model.dtStartDatum)
          .DateInput(true)
    )

具有 2 个日期时间的视图模型:

    public IEnumerable<vmPar> parVoerpunt { get; set; }
    public IEnumerable<vmPar> parKanaal { get; set; }
    public IEnumerable<vmPar> parAlarm { get; set; }
    [DataType( DataType.DateTime )]
    public System.DateTime dtStartDatum { get; set; }
    [DataType( DataType.DateTime )]
    public System.DateTime dtEindDatum { get; set; }
    public int afdelingId { get; set; }
    public int afdelingIdSelected { get; set; }
    public int stalId { get; set; }

在此处输入图像描述 编辑 Somethimes 它实际上是在重新选择新日期 10 次后发布的。当它发布时,它是正确的值,但我不知道为什么它并不总是发布。

4

2 回答 2

3

我在我的项目中经常使用 kendo DateTimePickers。据我所知,有几件事可能会导致您遇到问题。

@(Html.Kendo().DateTimePickerFor(m => m.dtStartDatum)
      .Name("dtStartDatum")
      .Value( DateTime.Today )
      .Format( "dd-MM-yyyy HH:mm" )
      .TimeFormat( "HH:mm" )
      .DateInput( true )
)
  1. 您将第二个 datetimepicker 设置为 Model.dtStartDatum 的最小值。当视图呈现时,我猜测该字段没有任何值。您可以将第一个 datetimepicker 的值设置为 DateTime.Today,但这并不意味着它将从第二个 datetimepicker 的 min 属性中读取。绑定到第二个 datetimepicker 的最小值的值可能不允许某些日期绑定到模型。检查它的最简单方法是打开日期选择器并查看它是否允许您选择今天之前的日期。
  2. 由于您似乎使用具有这些字段的模型,因此您可以使用 DateTimePickerFor 绑定到模型字段。以您使用它的方式使用它并没有错,但是由于您在视图中插入模型,这是一种更好的做法。(上面的例子)

  3. 我不认为 dateInput 在您的情况下是必需的。我不认为它会以不好的方式影响任何事情,但这不是必需的。

于 2017-10-16T17:58:54.860 回答
2

我找到了答案,抱歉让我久等了,只是提醒自己这篇文章。

Chrome 中的不显眼验证不会使用 dd/mm/yyyy 进行验证

这是我的问题和我的回答。验证器切换了月份和日期,以便选择高于第 12 周的日期的日期会产生验证错误(这是一个非常无声的错误,仍然找不到它)。即使全球化设置正确,dd-mm-yyyy 也无法正确验证,这真的很奇怪。希望我能帮助别人。

于 2017-11-02T14:29:35.493 回答