使用DisplayMetadata Provider在ASP MVC Core中输入掩码

时间:2018-05-09 16:10:43

标签: asp.net-core asp.net-core-mvc

我试图找到一种方法来实现输入掩码,方法是在MVC ASP NET Core中从Model Class传递自定义属性,并相应地将HTML属性构建为HTML元素。下面是答案

1 个答案:

答案 0 :(得分:0)

我想与您分享如何使用DisplayMetadata Provider应用输入掩码,因为它与其他版本不同。 以下是简要步骤,可在此链接中找到更多相关信息:In MVC Core Passing custom attribute from Model class to HTML element "e.g.:Input Masking" https://www.codeproject.com/Tips/1243346/In-MVC-Core-Passing-custom-attribute-from-Model-cl

1-创建自定义属性,例如:HTMLMaskAttribute,继承自Attribute Class

2-通过实现接口IDisplayMetadataProvider创建自定义DisplayMetadataProvider,此提供程序将从模型类中读取新属性。

在MVC应用程序的启动类中注册CustomMetadataProvider

4-In Model Class在您需要的属性中添加新的自定义属性“mask”,以创建示例电话号码的掩码。

5-我使用Masked Input Plugin为我的例子下载它,并将jQuery和屏蔽输入javascript文件包含到您的特定视图页面或_Layout.cshtml页面。

6-将此脚本添加到您的视图中_layout.cshtml或特定视图:

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

7-创建视图并包含具有属性

的Property

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">