当从具有下面属性的模型中构建一个视图时,会生成一个代码,该代码会呈现一个效果很好的浏览器日期选择器。
如何搭建产生日期和时间选择器的房产?
[Display(Name = "Date Start")]
[DataType(DataType.Date)]
public DateTime EventStart { get; set; }
我尝试了这个,但它不起作用......
[DataType(DataType.DateTime)]
答案 0 :(得分:1)
您可以通过创建自定义EditorTemplate并告诉MVC将其与[UIHint]
一起使用来实现此目的。
视图模型:
[Display(Name = "Date Start")]
[UIHint("DateTimePicker")]
public DateTime EventStart { get; set; }
查看/共享/ EditorTemplates / DateTimePicker.cshtml:
@model DateTime
<input type="text" name="@Html.NameFor(m => m)" id="@Html.IdFor(m => m)" value="@Model.ToString("o")"/>
<script type="text/javascript">
// init the datepicker of your JS UI Framework (I am using jQuery UI here)
$('#@Html.IdFor(m => m)').datepicker();
</script>
主视图中的用法:
@Html.EditorFor(m => m.EventStart)
这种方法的问题是你松开了在EditorTemplate中创建的JS datepicker对象的句柄。因此,如果您想更改配置(例如动态设置maxDate),则必须构建其他基础架构。
所以我的建议是将JS datepicker直接附加到需要它的视图中并在那里配置它,而不是使用编辑器模板进行日期选择。