Проект MVC4 с семантической разметкой HTML5 HtmlHelper.EditorFor использует типы ввода HTML5

У меня есть проект ASP.NET MVC4 с включенной семантической разметкой HTML5. При использовании @Html.EditorFor(m => m.MyDateTimeField)выход является входом с type="datetime". Я хочу запретить EditorForсоздавать разметку HTML5. Как я могу это сделать?

На данный момент это проблема только Opera, потому что другие браузеры (, насколько мне известно, )не поддерживают type="datetime". У меня есть средство выбора даты jQuery в поле, поэтому в Opera я получаю как средство выбора даты jQuery, так и средство выбора даты браузера.

Я могу исправить, используя любой из:
а. Используйте js для изменения типа ввода
б. ИспользуйтеHtml.TextBoxFor(m => m.MyDateTimeField)
в. Используйте пользовательский шаблон редактора
д. Используйте modernizr, чтобы определить, поддерживается ли дата и время, и если да, то не используйте сборщик данных jQuery

Решение, которое я хочу, — отключить генерацию HTML5 в HtmlHelper.EditorFor. Я хочу, чтобы HtmlHelper.EditorForфункционировал так же, как если бы я не отметил флажок "Семантическая разметка html5" при создании проекта.

РЕДАКТИРОВАТЬ: После еще немного поиска я наткнулся на DataTypeAttribute, который я могу применить к полям моей модели, чтобы заставить их отображаться как ввод type="text", а не соответствие html5. Это потенциальное решение, но далеко не идеальное. Наверняка где-то должен быть переключатель для отключения html5 вEditorFor(и эквивалентные помощники )?

Еще немного информации: У меня есть два проекта. Первый был создан с включенной «семантической разметкой Html5», второй — без. Первый использует типы ввода html5 при использовании EditorFor, второй — нет.Мне нужно остановить первый проект EditorForбез удаления EditorFor. Где-то должна быть настройка?

5
задан Paul Fleming 8 November 2012 в 14:57
поделиться