我正在使用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