我试图找到一种方法来实现输入掩码,方法是在MVC ASP NET Core中从Model Class传递自定义属性,并相应地将HTML属性构建为HTML元素。下面是答案
答案 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-创建视图并包含具有属性
的Property8-运行应用程序并注意已将html属性掩码添加到属性Phone1
<input name="Phone1" class="form-control valid" id="Phone1" aria-invalid="false" type="text" value="(123) 456-7890" mask="(999) 999-9999">