我正在使用instructions from Microsoft將MVC3應用程序升級到MVC4。一切都相當順利 - 除了我的一些日期模型屬性現在呈現不同。例如,其中一個屬性在視圖模型的定義是這樣的:自定義編輯器模板未在MVC4中用於DataType.Date
[Required(ErrorMessage = "Required")]
[DataType(DataType.Date)]
[RegularExpression(@"([1-9]|0[1-9]|1[012])...",
ErrorMessage = "Format is mm/dd/yyyy")]
[FormatHint("mm/dd/yyyy")]
[InputSize("small")]
public string Date { get; set; }
之前升級到MVC4,這將呈現通過調用@Html.EditorFor(m => m.Date)
這將使用自定義EditorTemplate - 在String.cshtml
模板(因爲它是一個字符串! )。我有一些自定義數據註釋來格式化html,所以它在客戶端使用了字段佈局,jQueryUI和twitter Bootstrap。驗證通過jQuery驗證完成,不顯眼。總之,這是它以前的呈現方式:
現在,我使用MVC4,該String.cshtml
編輯模板不會被調用該物業的任何更長的時間。它使得像這樣(在使用Chrome的HTML5編輯器的東西,我假設):
的input
元素看起來幾乎是一樣的 - 所有的jQuery驗證位在那裏 - 唯一的區別似乎是type
屬性現在是type="date"
,之前是type="text"
。
我想繼續使用此數據類型的String.cshtml
EditorTemplate。我在想可能會有一個數據註釋,我可以把它放在ViewModel屬性上,爲@Html.EditorFor(...)
提供一個TemplateHint。如果不是這樣,我想知道我可以編寫的自定義EditorTemplate來劫持MVC4的格式(我已經嘗試過DateTime.cshtml
- 它也沒有被調用)。如果不是其中的任何一個,那麼我會接受有關如何讓我的屬性呈現像以前一樣的建議。
這似乎是你的第二張圖所示'datepicker()'用兩個不同的UI調用兩次,你確定'datepicker()'重複調用嗎?順便說一下,我在MVC4中從jQueryUI中使用'datepicker'沒有任何問題。 – Saeid