Html MVC4添加输入类型日期

Html MVC4添加输入类型日期,html,razor,asp.net-mvc-4,Html,Razor,Asp.net Mvc 4,我想知道如何为我的模型的datetime属性插入一个。 现在Razor创建了一个带有type=“datetime”的普通输入元素。我想利用HTML5的新输入类型。我通过使用以下代码实现了这一点 @Html.TextBoxFor(model => model.EndTime, new { type = "time" }) 输入日期值格式需要按照完整日期指定的日期 所以我最终做了: <input type="date" id="last-start-date" value="@stri

我想知道如何为我的模型的datetime属性插入一个

现在Razor创建了一个带有
type=“datetime”
的普通输入元素。我想利用HTML5的新输入类型。

我通过使用以下代码实现了这一点

@Html.TextBoxFor(model => model.EndTime, new { type = "time" })

输入日期值格式需要按照完整日期指定的日期

所以我最终做了:

<input type="date" id="last-start-date" value="@string.Format("{0:yyyy-MM-dd}", Model.LastStartDate)" />

不幸的是,这似乎总是将输入的value属性设置为标准日期时间,因此我最终直接应用了上述格式

编辑:

根据Jorn的说法如果你使用

@Html.EditorFor(model => model.LastStartDate)

而不是文本框,因为它可以正常工作。

您将通过tag type=“date”获得它……然后它将呈现美丽的日历和所有

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

如果要使用@Html.EditorFor(),必须使用jQuery ui和 使用NuGet Package Manager将Asp.net Mvc更新为5.2.6.0

@Html.EditorFor(m => m.EntryDate, new { htmlAttributes = new { @class = "datepicker" } })

@节脚本{

@Scripts.Render("~/bundles/jqueryval")


$(文档).ready(函数(){
$('.datepicker').datepicker();
});

}

+1实际上,通过属性上的这些数据注释,
Html.EditorForm(m=>m.LastStartDate)
呈现了一个
。因此,无需重写
类型
属性。@JørnSchou,谢谢。这不应该是Html.EditorFor吗?@JørnSchou Rode我已经更新了我的答案以回应你的评论。确实应该。
m
是一个输入错误:)EditorFor来自何处?只是一个迟来的注释为什么这个答案在Chrome中只显示时间?Safari或IE中不支持输入类型date。您使用过这两种类型吗?来源:应使用Html.EditorFor代替textboxfor
 @Html.TextBoxFor(m => m.EntryDate, new{ type = "date" })

 or type = "time"

 it will display a calendar
 it will not work if you give @Html.EditorFor()
@Html.EditorFor(m => m.EntryDate, new { htmlAttributes = new { @class = "datepicker" } })
@Scripts.Render("~/bundles/jqueryval")
<script>

    $(document).ready(function(){

      $('.datepicker').datepicker();

     });

</script>