Kendo DateTimePicker 未发布 asp.net MVC
Kendo DateTimePicker not posting asp.net MVC
我正在尝试 post 一个包含下拉列表的表单,其中包含值以及开始和结束日期和时间。问题是当我 post 表格时,它基本上没有 post。它不是 posting,而是选择 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 次之后,它有时实际上会 post。当它 posts 时它是正确的值,但我不知道为什么它并不总是 posting.
我在我的项目中经常使用 kendo DateTimePickers。据我所知,有几件事可能会导致您遇到问题。
@(Html.Kendo().DateTimePickerFor(m => m.dtStartDatum)
.Name("dtStartDatum")
.Value( DateTime.Today )
.Format( "dd-MM-yyyy HH:mm" )
.TimeFormat( "HH:mm" )
.DateInput( true )
)
- 您正在将第二个日期时间选择器设置为最小值 Model.dtStartDatum。当视图呈现时,我猜测该字段没有任何值。您可以将第一个 datetimepicker 的值设置为 DateTime.Today 但这并不意味着它将从第二个 datetimepicker 的 min 属性中读取。绑定到第二个日期时间选择器的最小值的值可能不允许某些日期绑定到模型。检查它的最简单方法是打开日期选择器,看看它是否允许您 select 今天之前的日期。
由于您似乎在使用带有这些字段的模型,因此您可以使用 DateTimePickerFor 绑定到模型字段。以您使用它的方式使用它并没有错,但是由于您在视图中插入了一个模型,所以这是一种更好的做法。 (上面的例子)
我认为您的情况不需要 dateInput。我不认为它会以任何不好的方式影响任何事情,但它不是必需的。
我找到了我的答案,抱歉让你久等了,只是提醒自己这个 post。
Unobtrusive validation in Chrome won't validate with dd/mm/yyyy
这是我的问题,也是我的答案。验证器切换月份和日期,因此选择第 12 周以上的日期会出现验证错误(这是一个非常安静的错误,仍然无法找到它)。真的很奇怪,即使全球化设置正确,dd-mm-yyyy 也不会正确验证。
希望我能帮助到别人。
我正在尝试 post 一个包含下拉列表的表单,其中包含值以及开始和结束日期和时间。问题是当我 post 表格时,它基本上没有 post。它不是 posting,而是选择 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; }
我在我的项目中经常使用 kendo DateTimePickers。据我所知,有几件事可能会导致您遇到问题。
@(Html.Kendo().DateTimePickerFor(m => m.dtStartDatum)
.Name("dtStartDatum")
.Value( DateTime.Today )
.Format( "dd-MM-yyyy HH:mm" )
.TimeFormat( "HH:mm" )
.DateInput( true )
)
- 您正在将第二个日期时间选择器设置为最小值 Model.dtStartDatum。当视图呈现时,我猜测该字段没有任何值。您可以将第一个 datetimepicker 的值设置为 DateTime.Today 但这并不意味着它将从第二个 datetimepicker 的 min 属性中读取。绑定到第二个日期时间选择器的最小值的值可能不允许某些日期绑定到模型。检查它的最简单方法是打开日期选择器,看看它是否允许您 select 今天之前的日期。
由于您似乎在使用带有这些字段的模型,因此您可以使用 DateTimePickerFor 绑定到模型字段。以您使用它的方式使用它并没有错,但是由于您在视图中插入了一个模型,所以这是一种更好的做法。 (上面的例子)
我认为您的情况不需要 dateInput。我不认为它会以任何不好的方式影响任何事情,但它不是必需的。
我找到了我的答案,抱歉让你久等了,只是提醒自己这个 post。
Unobtrusive validation in Chrome won't validate with dd/mm/yyyy
这是我的问题,也是我的答案。验证器切换月份和日期,因此选择第 12 周以上的日期会出现验证错误(这是一个非常安静的错误,仍然无法找到它)。真的很奇怪,即使全球化设置正确,dd-mm-yyyy 也不会正确验证。 希望我能帮助到别人。