小编典典

MVC4 DataType.Date EditorFor 不会在 Chrome 中显示日期值,在 Internet Explorer 中很好

all

我在我的模型上使用 DataType.Date 属性,在我的视图中使用 EditorFor。这在Internet Explorer
8
Internet Explorer
9
中运行良好,但在Google
Chrome
中,它显示了一个日期选择器,而不是显示值,它只是以褪色的灰色文本显示“月/日/年”。

为什么谷歌浏览器不显示该值?

模型:

[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }

看法:

<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>

chrome

IE浏览器


阅读 60

收藏
2022-06-30

共1个答案

小编典典

当您在 ASP.NET MVC 4
中使用默认模板装饰模型属性时,[DataType(DataType.Date)]会生成一个输入字段type="date"

<input class="text-box single-line" 
       data-val="true" 
       data-val-date="The field EstPurchaseDate must be a date."
       id="EstPurchaseDate" 
       name="EstPurchaseDate" 
       type="date" value="9/28/2012" />

支持 HTML5 的浏览器(例如 Google Chrome)使用日期选择器呈现此输入字段。

为了正确显示日期,该值的格式必须为2012-09-28.
引用规范

value: [RFC 3339] 中定义的有效完整日期,附加条件是年份部分是四位或更多位,表示大于 0 的数字。

DisplayFormat您可以使用以下属性强制执行此格式:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }
2022-06-30