我有一个启用了 HTML5 语义标记的 ASP.NET MVC4 项目。当使用@Html.EditorFor(m => m.MyDateTimeField)
输出是一个输入时type="datetime"
。我希望能够停止EditorFor
生成 HTML5 标记。我怎样才能做到这一点?
目前这只是 Opera 中的一个问题,因为其他浏览器(据我所知)不支持type="datetime"
. 我在字段上有一个 jQuery datepicker,所以在 Opera 中我得到了 jQuery datepicker 和浏览器 datepicker。
我可以使用以下任何一种来修复:使用 js 更改输入类型
b. 使用Html.TextBoxFor(m => m.MyDateTimeField)
c。使用自定义编辑器模板
d. 使用modernizr来检测是否支持日期时间,如果支持,不要使用jQuery datapicker
我想要的解决方案是在HtmlHelper.EditorFor
. HtmlHelper.EditorFor
如果我没有在项目创建时勾选“html5 语义标记”复选框,我想以相同的方式运行。
编辑:
经过更多搜索后,我发现了DataTypeAttribute
可以在模型字段上应用的内容,以强制将它们呈现为输入type="text"
而不是 html5 匹配。这是一个潜在的解决方案,但并不理想。当然必须有一个开关来关闭html5 EditorFor
(和等效的助手)?
更多信息:
我有两个项目。第一个是使用“Html5 语义标记”创建的,另一个没有。第一个在使用时使用 html5 输入类型EditorFor
,第二个没有。我需要停止第一个项目EditorFor
的行为方式,而无需删除EditorFor
. 一定有某个地方的设置?