0

我正在将 EditorTemplate 用于 DateTimeOffset 字段,该字段包含...

@model DateTimeOffset?
@Html.TextBox("", String.Format("{0:u}", Model.HasValue ? Model : DateTimeOffset.UtcNow), new { @class = "datepicker" })

这适用于我 90% 的表单,我得到的值如2012-07-31 11:30:09Z. 但是,我有一种不会应用任何格式的表格。工作输入字段和非工作输入字段的 HTML 输出是相同的。

在职的...

<input class="datepicker hasDatepicker" data-val="true" data-val-required="&amp;#39;Launch Time&amp;#39; must not be empty." id="LaunchTime" name="LaunchTime" type="text" value="2012-07-31 11:30:09Z">

非工作...

<input class="datepicker hasDatepicker" data-val="true" data-val-required="&amp;#39;Launch Time&amp;#39; must not be empty." id="LaunchTime" name="LaunchTime" type="text" value="07/31/2012 11:30:09 +00:00">

我发现解决问题的唯一方法是更改​​ TextBox 名称字段...

@Html.TextBox("asdf", String.Format("{0:u}", Model.HasValue ? Model : DateTimeOffset.UtcNow), new { @class = "datepicker" })

但是,这会将我的输入字段更改为...

<input class="datepicker hasDatepicker" id="LaunchTime_asdf" name="LaunchTime.asdf" type="text" value="2012-07-31 11:30:09Z">

然后将破坏表单提交,并删除验证规则。

该模型...

[DisplayFormat(DataFormatString = "{0:u}" , ApplyFormatInEditMode = true)]
public DateTimeOffset LaunchTime { get; set; }
4

1 回答 1

0

问题是似乎适用于日期时间值的唯一格式是 yyyy-mm-dd。/s 不起作用。

于 2012-08-10T15:35:52.530 回答