visual studio 2015中的默认日期时间选择器仅显示日期选择器,不允许选择时间

时间:2015-09-16 14:55:26

标签: datetime asp.net-mvc-5 visual-studio-2015

我正在使用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没有控制器时,只显示文本框。

1 个答案:

答案 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实现。