如何使用输入类型=日期的Html.TextBoxFor?

我想在我的代码中实现。 为此,我有以下内容:

@Html.TextBoxFor(model => model.CreationDate, new { @type = "date" }) 

此代码生成以下HTML:

  

该值未显示在网页上,因为type =“date”需要YYYY-MM-DD格式的数据。

我已经尝试格式化日期,但当然会爆炸。

 @Html.TextBoxFor(model => model.CreationDate.ToString("YYYY-MM-DD"), new { @type = "date" }) 

如何使用TextBoxFor方法正确显示构造? 或者我应该使用其他方法(我已经尝试过EditorFor但是失败了)?

CreationDate的类型为DateTime。

试试这个;

 @Html.TextBoxFor(model => model.CreationDate, new { @type = "date", @Value = Model.CreationDate.ToString("yyyy-MM-dd") }) 

设置值时必须处理null

要么

如果您可以更改Model您可以试试这个;

 [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime CreationDate{ get; set; } 

在您的视图中,您可以使用EditorFor帮助程序。

 @Html.EditorFor(model => model.CreationDate, new { @type = "date" }) 

型号设计:

 [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime CreationDate{ get; set; } 

查看设计:

 <%: Html.EditorFor(m => m.CreationDate, new { @type = "date" }) %> 

我用EditorFor和boostrap-datepicker库做了类似的事情:

  
@Html.EditorFor(m => m.StartDate)

将c#Datetime转换为HTML-5 Date值

 "/>