为什么我的日期输入没有读取模型值?

时间:2015-02-05 23:38:47

标签: javascript jquery asp.net-mvc-4 razor

我是一个服务器方面的人试图教自己一点CSS,Javascript,jQuery等。我写了一个小测试项目,加载模型并在简单的文本框中显示值。正常工作,如你所见:

enter image description here

但当然,我想适当地显示这些日期。那么让我将这些输入类型更改为“date”。这是Razor代码:

@Html.TextBoxFor(m => m.Date, new { @type="date", @id="ondate" })

嗯,那确实有点......我的意思是,它现在显示为日期选择器......但它不再显示模型的日期!

enter image description here

我做错了什么?

2 个答案:

答案 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"属性并使用正确的格式。

附注:

  1. 仅在最新版本的Chrome
  2. 中支持HTML5日期选择器
  3. 使用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") })%>