Маска ввода в ASP MVC Core с использованием провайдера DisplayMetadata - PullRequest
0 голосов
/ 09 мая 2018

Я пытался найти способ реализовать маску ввода, передавая пользовательский атрибут из класса модели в MVC ASP NET Core и соответственно встроив атрибут HTML в элемент HTML. Ниже приведен ответ

1 Ответ

0 голосов
/ 09 мая 2018

Я хотел бы поделиться с вами информацией о том, как применять маску ввода с помощью поставщика DisplayMetadata, поскольку она отличается от других версий. Вот краткие шаги, более подробную информацию об этом можно найти по этой ссылке: В MVC Core Передача пользовательского атрибута из класса Model в элемент HTML "напр.: Input Masking" https://www.codeproject.com/Tips/1243346/In-MVC-Core-Passing-custom-attribute-from-Model-cl

1- Создать пользовательский атрибут, например: HTMLMaskAttribute, наследовать от класса атрибута

2- Создайте пользовательский DisplayMetadataProvider, реализовав интерфейс IDisplayMetadataProvider, этот поставщик будет считывать новый атрибут из класса модели.

3-зарегистрировать CustomMetadataProvider в классе запуска приложения MVC

4-In Model Class добавьте новый пользовательский атрибут «mask» в свойство, которое вам необходимо создать, например, его маску Phone number.

5 - Я использую плагин для маскирования ввода для моего примера, загрузите его и включите jQuery и маскированные входные файлы javascript на вашу конкретную страницу просмотра или на страницу _Layout.cshtml.

6 - добавьте этот скрипт в ваше представление либо _layout.cshtml, либо в специальное представление:

  <script type="text/javascript">
    $(function () {
   $('[mask]').each(function (e) {
       $(this).mask($(this).attr('mask'));
   });
   });
   </script>

7 - создать вид и включить свойство, имеющее атрибут

8 - Запустите приложение и обратите внимание, что маска html-атрибута была добавлена ​​для свойства Phone1

.
<input name="Phone1" class="form-control valid" id="Phone1" aria-invalid="false" type="text" value="(123) 456-7890" mask="(999) 999-9999">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...