我的模型中的.Net MVC4应用程序中有一个DateTime字段。我希望编辑视图显示日期值,同时向用户显示使用日历控件的选项。
添加属性[DisplayFormat(DataFormatString = "{0:d}",ApplyFormatInEditMode = true)]
会向用户显示当前值作为文本字段:
添加[DataType(DataType.Date)]
会显示“mm / dd / yyyy”并隐藏当前值:
并在选择向下箭头时提供一个漂亮的日历小部件:
有没有办法结合这个功能,所以用户可以看到当前选择的日期和日历小部件?
更新
这是浏览器行为。控件生成的标记包含当前日期值:
<input class="text-box single-line" data-val="true" data-val-date="The field Dining Date must be a date." data-val-required="The Dining Date field is required." id="DiningDate" name="DiningDate" type="date" value="2/15/2013">
IE9通过显示没有小部件的日期来呈现此标记,而Chrome隐藏日期。
答案 0 :(得分:6)
IE9通过显示没有小部件的日期
来呈现此标记
IE9根本不支持日期输入,因此您可以忘记此Web浏览器中的任何小部件。甚至IE10都不支持它:-)请查看following article
以查看支持HTML5日期输入的Web浏览器。所有其他不支持它的浏览器只显示一个标准文本框而没有任何日期时间选择器小部件。
而Chrome隐藏了日期。
HTML specification
表示日期输入字段的value
属性必须使用RFC 3339 format
才能显示此默认值:
<input id="Date" name="Date" type="date" value="2013-02-17" />
如果value
使用其他格式,则不会显示此默认值。
因此,如果您不想获得未定义的行为,请务必遵守规范:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
然后你就会得到预期的结果: