Атрибут DataType.PhoneNumber не влияет на отображение

У меня есть [DataType(DataType.PhoneNumber)] на String поле в моем представлении модели. Когда отображается номер телефона, он отображается в виде простой строки без форматирования.

Другое поле в моем представлении модели имеет [DataType(DataType.Url)] атрибут, и он отображается правильно как элемент HTML.

У меня есть два вопроса:

  1. Почему DataType.Url оформленное поле отображается правильно, в то время какDataType.PhoneNumber поле выглядит как обычная строка символов без форматирования телефона?

  2. Как я могу получить 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. Это до браузера, чтобы фактически реализовать то, на что это будет похоже на экране или интерпретировать, как это должно быть проверено.

Другие вопросы по тегам