带有HTML5语义标记的MVC4项目HtmlHelper.EditorFor使用HTML5输入类型

Pau*_*ing 5 asp.net-mvc html5 html-helper mvc-editor-templates asp.net-mvc-4

我有一个ASP.NET MVC4项目,启用了HTML5语义标记.使用@Html.EditorFor(m => m.MyDateTimeField)输出时输入type="datetime".我希望能够停止EditorFor生成HTML5标记.我怎样才能做到这一点?

这只是Opera目前的一个问题,因为其他浏览器(据我所知)不支持type="datetime".我在该字段上有一个jQuery datepicker所以在Opera中我得到了jQuery datepicker和浏览器datepicker.

我可以使用以下任何
一种方法修复:a.使用js更改输入类型
b.使用Html.TextBoxFor(m => m.MyDateTimeField)
c.使用自定义编辑器模板
d.使用modernizr检测是否支持datetime,如果支持,则不要使用jQuery datapicker

我想要的解决方案是禁用HTML5生成HtmlHelper.EditorFor.我希望HtmlHelper.EditorFor功能与我在项目创建时没有勾选"html5 semandtic markup"复选框时的功能相同.

编辑: 经过一番搜索,我遇到了DataTypeAttribute我可以在我的模型字段上应用的强制它们作为输入type="text"而不是html5匹配.这是一个潜在的解决方案,但它不太理想.当然必须有一个开关来关闭html5 EditorFor(和等效的助手)?

更多信息: 我有两个项目.第一个是用"Html5语义标记"创建的,另一个没有.第一个使用时使用html5输入类型EditorFor,第二个不使用.我需要停止第一个项目的EditorFor行为方式是没有删除EditorFor.某处必须有设置?

VJA*_*JAI 2

问题在于其中一个项目中的包引用未正确更新,因此您会看到呈现的 html5 语义。

当您将 ASP.NET MVC beta 版本升级到 RC 时,会发生此问题,有两种方法可以解决该问题:通过 Nuget 更新所有包或手动添加对程序集的引用。

Scott在这里清楚地解释了这个问题和解决方案。