Cla*_*ari 6 c# validation asp.net-mvc
我想创建自己的验证类(我在JS中有很多验证方法,我想将其转换为C#以与MVC模型一起使用),其工作原理与数据注释完全相同,在客户端和服务器端[DataType(MyDataType)]进行验证:或者像验证一样DataAnnotation属性如下:[MyDataTypeValidation]
我不知道哪个选项更好,使我的验证"库"
在示例中,我有我的类FigurasDA,我想对属性nombre进行自定义验证.
namespace MonitoreoIntegrado.Models
{
[MetadataType(typeof(FigurasDA))]
public partial class Figuras
{
}
public class FigurasDA
{
[DataType(MyDataType)]
//or
[MyDataTypeValidation]
public string nombre { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,我想验证字符串是否与正则表达式匹配,@"^[\w\s\.\-_]+$"并显示如下所示的错误消息"Solo se permite letras,numeros y puntuaciones( - _.)"如果不这样做.(这是我的"Alfanumerico"数据类型).
你能举个例子说明我的验证类和里面写的代码吗?
实际上它很容易......您只需从ValidationAttribute类继承自定义验证属性并提供自己的IsValid逻辑.例如:
public class MyDataTypeValidationAttribute : ValidationAttribute
{
private Regex _regex = new Regex(@"^[\w\s.-_]+$");
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (_regex.IsMatch(value.ToString()))
{
return ValidationResult.Success;
}
return new ValidationResult("Solo se permite letras, numeros y puntuaciones(- _ .)" );
}
}
Run Code Online (Sandbox Code Playgroud)
在您的视图模型中,您可以使用:
public class FigurasDA
{
[MyDataTypeValidation]
public string nombre { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以保存此验证属性,例如在AttributesMVC项目的文件夹中:



| 归档时间: |
|
| 查看次数: |
4872 次 |
| 最近记录: |