C# MVC 日期时间选择器问题

C# MVC DateTime Picker Problems

所以。如果我的模型中有这个:

[DataType(DataType.Date)]
public DateTime Birthday { get; set; }

我在调用时得到了一个不错的日期选择器字段(但不能 select time):

@Html.EditorFor(model => model.Birthday, new { htmlAttributes = new { @class = "form-control" } })

但是,如果我想记录事件的日期和开始时间时间

[DataType(DataType.DateTime)]
public DateTime Start { get; set; }

我得到的只是一个常规文本字段。


此外,我刚刚注意到,当我想编辑现有记录时,日期为空并且必须重新输入,即使所有其他字段都已正确填充。

您可以将日期时间保存为数据库中的字符串或操作从 UI 发布的日期时间值。请参阅参考资料: http://eonasdan.github.io/bootstrap-datetimepicker/ http://forums.asp.net/t/1975676.aspx?Tutorial+for+Adding+Datepicker+in+MVC+5

我认为您还可以在 HTML 中指定本地日期时间 属性。

@Html.TextBoxFor(model => model.Property, new { htmlAttributes = new { @class = "form-control", @type="datetime-local" } })

这是在您的应用程序中获取 date/time 选择器的一种非常简单易行的方法。

编辑: 要将 date/time 设置为 "default",您需要一些 jQuery,因为通过 @Value(据我所知)这是不可能的。我使用以下设置表单上的 date/time。

$(document).ready(function () {
    var now = new Date();
    var day = (@Model.myDate.Day.ToString().Length != 2) ? "0" + @Model.myDate.Day : @Model.myDate.Day;
    var month = (@Model.myDate.Month.ToString().Length != 2) ? "0" + @Model.myDate.Month : @Model.myDate.Month;
    var today = @Model.myDate.Year + "-" + (month) + "-" + (day);
    $('#IdOfDateElement').val(today);
});