剑道 DateTimePicker 没有发布 asp.net MVC

Posted

技术标签:

【中文标题】剑道 DateTimePicker 没有发布 asp.net MVC【英文标题】:Kendo DateTimePicker not posting asp.net MVC 【发布时间】:2018-03-27 20:28:33 【问题描述】:

我正在尝试发布一个包含下拉列表的表单,其中包含值以及开始和结束日期和时间。问题是当我发布表格时,它基本上不会发布。而不是发布它是选择 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; 

编辑 有时,它实际上会在重新选择 10 次新日期后发布。当它发布时它是正确的值,但我不知道为什么它并不总是发布。

【问题讨论】:

任何控制台错误? @SteveGreene 在 chrome 和 Visual Studio 中都没有控制台错误... 我的方法有没有给你任何见解或不同的案例?您是否尝试删除最小值?如果它工作正常(在不发布值的问题中),那么也许我可以提供一个以不同方式设置最小值的示例,因为我也为我的应用程序设置了这样的逻辑。 @AnastasiosSelmanis 感谢您的回复!遗憾的是,您的方法对这个问题没有任何影响......这太令人沮丧了,因为没有错误。当我提交 datetimepickerfor 小部件时,只是在 html 中“选择”而不是发布数据。当我删除日期时间选择器时,帖子工作正常。 能否请您也添加您的操作方法?为了尽可能高效地重现它。 【参考方案1】:

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

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

    由于您似乎使用具有这些字段的模型,您可以使用 DateTimePickerFor 绑定到模型字段。以您使用它的方式使用它并没有错,但是由于您在视图中插入模型,这是一种更好的做法。 (上例)

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

【讨论】:

【参考方案2】:

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

Unobtrusive validation in Chrome won't validate with dd/mm/yyyy

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

【讨论】:

以上是关于剑道 DateTimePicker 没有发布 asp.net MVC的主要内容,如果未能解决你的问题,请参考以下文章

$("#grid").kendoGrid 中的 datetimePicker 列

Aurelia和剑道

无法使用 moment.js 返回 UTC 日期时间

剑道网格没有按预期工作

剑道网格没有显示任何数据

在 wpf 中未选择 DateTimePicker