У меня есть проект 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
. Где-то должна быть настройка?