2012-07-31 27 views
0

不工作我使用該組成的的DateTimeOffset領域的EditorTemplate ...EditorTemplate和中的DateTimeOffset MVC4

@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"> 

,我發現,解決問題是要改變文本框名稱字段的唯一的事情...

@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; } 
+0

LaunchTime的類型在兩種模型中都是相同的 - 即其中一個可以爲空而另一個不可以? – Oded 2012-07-31 18:59:08

+0

爲什麼使用'Html.TextBox(「」)'而不是'Html.TextBoxFor(m => m)'? – 2012-07-31 19:00:13

+0

所有表單中都使用相同的模型。 – Jared 2012-07-31 19:05:09

回答

0

的問題是,這似乎爲datetime值工作的唯一格式爲YYYY-MM-DD。/s不工作。