Я хотел бы поделиться с вами информацией о том, как применять маску ввода с помощью поставщика 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">