Атрибут DataType.PhoneNumber не влияет на отображение
У меня есть [DataType(DataType.PhoneNumber)]
на String
поле в моем представлении модели. Когда отображается номер телефона, он отображается в виде простой строки без форматирования.
Другое поле в моем представлении модели имеет [DataType(DataType.Url)]
атрибут, и он отображается правильно как элемент HTML.
У меня есть два вопроса:
Почему
DataType.Url
оформленное поле отображается правильно, в то время какDataType.PhoneNumber
поле выглядит как обычная строка символов без форматирования телефона?Как я могу получить
PhoneNumber
сделать в качестве действительного номера телефона (например, что-то вроде(xxx) xxx-xxxx
, Если вы скажете мне, я должен использоватьDataFormat
атрибут сDataFormatString
тогда какой смысл даже иметьDataType.PhoneNumber
?
1 ответ
Для вашего первого вопроса, у URL есть специальный синтаксис, который, если не следовать, не будет правильным URL.
Номера телефонов не имеют какого-либо определенного формата. в одних только США вы могли бы иметь
ххх-ххх-хххх
(ххх) ххх-хххх
(XXX) XXX-XXXX
xxx.xxx.xxxx
1 (ххх) ххх-хххх
Затем вы получаете международные номера с префиксами кода страны.
010 64 3 477 4000
0011 64 3 477 4000
+64 3 477 4000
Все это действительные номера телефонов
input="tel"
позволяет встроить номер телефона, чтобы в мобильном (телефонном) браузере можно было щелкнуть по нему, и он предварительно заполнит номер телефона в вашей звонилке.
Что касается аннотаций данных, они отображают правильный html, у них будут правильные теги типа html5. Это до браузера, чтобы фактически реализовать то, на что это будет похоже на экране или интерпретировать, как это должно быть проверено.