2017-08-31 16 views
0

我有一个要求来限制MVC应用程序中所有输入字段的特殊字符。将验证规则应用于MVC应用程序中的所有字符串

这可以使用正则表达式DataAnnotation以每个字段为基础来实现。

例如 [RegularExpression("^([a-zA-Z0-9]+)$", ErrorMessage = "Special characters are not permitted")] public string TestString {get; set; }

在应用程序中默认情况下,它如何应用于所有字符串模型属性?

非常感谢!

+0

你不行。但是,通过继承'RegularExpressionAttribute'并设置一个默认错误消息,将其简化为(说)'[AlphaOnly]'并且设置一个默认错误消息 –

+0

您可以使用'Fody'向现有字符串添加属性 - 但是您需要编写自己的add - 要做到这一点。请参阅https://www.pluralsight.com/courses/automatic-dotnet-code-weaving-fody。 – mjwills

+0

创建一个自定义的Action Filter并在那里写入验证逻辑,然后在全局进行注册。你将不得不在动作过滤器中使用反射,它应该是可能的。 – Igor

回答

0

你不能这样做。

属性主要是通过使用反射在运行时查找有关类/方法/参数的其他声明性信息的机制。

0

您必须对的每个属性应用验证,这是在您的模型类中声明的验证表达式绑定的individual property

相关问题