gpt4 book ai didi

c# - 创建自定义数据类型验证

转载 作者:太空狗 更新时间:2023-10-29 21:33:48 25 4
gpt4 key购买 nike

我想创建自己的验证类(我在 JS 中有很多验证方法,我想将其转换为 C# 以与 MVC 模型一起使用),其工作方式与数据注释完全一样,在客户端和服务器端进行验证:[DataType(MyDataType)] 或像这样的验证数据注释属性:[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; }
}
}

所以在这种情况下,我想验证字符串是否匹配正则表达式 @"^[\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(- _ .)" );
}
}

在您的 View 模型中,您可以使用:

public class FigurasDA
{
[MyDataTypeValidation]
public string nombre { get; set; }
}

您可以保存此验证属性,例如在您的 MVC 项目的 Attributes 文件夹中:

Step 1

Step 2

Step 3

关于c# - 创建自定义数据类型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24211580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com