0

Я использую ненавязчивые аннотации javascript и данных для моей проверки, и он отлично работает. Я решил украсить свои свойства модели просмотра атрибутами DataType. По большей части это хорошо, за исключением DataType.EmailAddressСтранное поведение MVC 4 при использовании DataType.EmailAddress

Когда я добавляю этот атрибут, я неожиданно получаю дополнительную проверку в этом поле, которое выдает вызов в поле, немного похоже на вызов проверки в наборе инструментов управления Ajax. Только стиль отличается от толстой красной границы к проверяемому элементу, а выноска - ниже. Вызов также отображает сообщение, не указанное в моей модели представления. У регулярного выражения, которое у меня есть для проверки, есть сообщение об ошибке «Указанный адрес электронной почты недействителен», тогда как сообщение в выноске - «Вы должны ввести действительный адрес электронной почты». Я попытался найти решение для этого текста, и он не найден. Наконец, только скрипты я нагруженные являются:

<script src="/Public/javascript/jquery-1.9.1.js" type="text/javascript"></script> 
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script> 
<script src="/Public/javascript/jquery.unobtrusive-ajax.js" type="text/javascript"></script> 
<script src="/Public/javascript/jquery.validate.js" type="text/javascript"></script> 
<script src="/Public/javascript/jquery.validate.unobtrusive.js" type="text/javascript"></script> 

И CSS:

<link href="/Public/themes/ui-darkness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css" /> 
<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" /> 
    <link href="/Public/css/reset.css" rel="stylesheet" type="text/css" /> 

Я также использую @ Html.EditorFor, чтобы сделать все свои поля на протяжении всей моей точки зрения.

Может ли кто-нибудь проливать свет на то, что происходит? Откуда вышло это выноска? Могу ли я отключить его? Могу ли я использовать его и использовать его на остальных моих полях? Должен ли я просто удалить DataType.EmailAddress?

ответ

4

В ASP.NET MVC 4, когда вы украшаете свойство с [DataType(DataType.EmailAddress)], соответствующий EditorFor будет генерировать поле ввода с type="email":

<input type="email" name="foo" value="[email protected]" /> 

Это HTML5, что некоторые современные браузеры поддерживают. Поэтому, если вы просматриваете свой сайт с помощью современного браузера, эта проверка автоматически встроена. Он не имеет ничего общего с ASP.NET MVC. Конечно, если браузер не понимает поле type="email", он просто рассматривает его как простое текстовое поле.

Проверьте, например, this fiddle out с Google Chrome.

+0

приятно одно спасибо, что вы разместили Я нашел это, http://forums.asp.net/t/1737959.aspx/1 Это я использую это, могу ли я получить то же самое со всеми другими полями? Я собираюсь пойти на работу и не смогу попробовать, пока не вернусь домой. –

Смежные вопросы