我正在使用visual studiio 2015,我在我的MVC5应用程序中使用其默认的日期时间选择器。我在显示日期时间选择器时遇到问题。它只显示日期选择器而不是时间选择器。但我也需要时间选择器。这是我的模型中的datetimepicker代码
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = false)]
[Required(ErrorMessage = "Start DateTime is required")]
public Nullable<System.DateTime> start_date_time { get; set; }
当我设置DateTime
代替Date
没有控制器时,只显示文本框。
答案 0 :(得分:1)
MVC5中没有默认日期时间选择器。 [DataType]
属性的作用是为您生成的type
元素呈现<input>
属性,如果支持,浏览器将使用该属性呈现相应的HTML5控件。对于DataType.Date
,它会生成<input type="date" ... />
目前只有最新版本的Chrome支持type="date"
。如果您使用IE或FireFox进行测试,则只能获得标准文本框。
使用[DataType(DataType.DateTime)]
生成type="datetime"
但Chrome,IE或FireFox目前不支持此功能,这就是您只能看到标准文本框的原因。
但是,Chrome的最新版本支持type="datetime-local"
,它将呈现一个控件,允许您选择日期和时间。没有[DataType]
类型可以生成此类型,但您可以使用
@Html.TextBoxFor(m => m.start_date_time, "{0:s}", new { @type = "datetime-local" })
注意"{0:s"}
是"{0:yyyy-MM-ddTHH:mm:ss}"
您可以使用this site比较各种版本的浏览器及其支持的HTML5字段类型。
由于目前支持有限,我建议您考虑使用jquery datetimepicker插件而不是浏览器HTML实现。