我是一个服务器方面的人试图教自己一点CSS,Javascript,jQuery等。我写了一个小测试项目,加载模型并在简单的文本框中显示值。正常工作,如你所见:
但当然,我想适当地显示这些日期。那么让我将这些输入类型更改为“date”。这是Razor代码:
@Html.TextBoxFor(m => m.Date, new { @type="date", @id="ondate" })
嗯,那确实有点......我的意思是,它现在显示为日期选择器......但它不再显示模型的日期!
我做错了什么?
答案 0 :(得分:1)
type="date"
属性呈现浏览器HTML5 datepicker。为了使其正常工作,格式必须为yyyy-MM-dd
(ISO格式),因此需要
@Html.TextBoxFor(m => m.Date, "{0:yyyy-MM-dd}", new { @type="date" })
或者,您可以在属性
上设置数据属性[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime Date { get; set; }
并使用
@Html.EditorFor(m => m.Date)
添加type="date"
属性并使用正确的格式。
附注:
EditorFor()
(在MVC-4中)将不允许您设置id
属性,但不清楚为什么你需要改变
默认id="Date"
至id="ondate"
答案 1 :(得分:0)
试试这个:
<%= Html.TextBoxFor(m => m.Date, new { @type = "date", @id = "ondate", @value = Model.Date.ToString("mm/dd/yyyy") })%>