剑道 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的主要内容,如果未能解决你的问题,请参考以下文章