gpt4 book ai didi

c# - 创建返回多条错误消息的自定义 ValidationAttribute 类

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:42 27 4
gpt4 key购买 nike

我有这样一个模型:

[IsValidInput]
public class Input
{
//different properties
}

使用这样的自定义验证属性:

[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class IsValidInput : ValidationAttribute
{
public override bool IsValid(object value)
{
try
{
ExternalValidator.Validate(value);
}
catch (CustomException ex)
{
foreach(var errorText in ex.GetDescriptions())
{
this.ErrorMessage = this.ErrorMessage + errorText;
}
return false;
}
return true;
}
}

现在我有一个包含多个错误的 ErrorMessage 对象。我想以某种方式返回多个 ErrorMessage 对象,这样在我看来我将有一个包含多个列表项的列表,如下所示:

  • 验证错误 1
  • 验证错误 2

如何返回错误消息列表来实现这一点?

最佳答案

您好,您可以返回简单的 ValidationResult 类而不是 bool 值:

 public class ValidationResult
{
public bool IsValid { get; set; }
public IList<string> Errors { get; set; }

public ValidationResult()
{
Errors = new List<string>();
}
}

public class IsValidInput
{
public ValidationResult IsValid(object value)
{
ValidationResult result = new ValidationResult();

try
{
ExternalValidator.Validate(value);
result.IsValid = true;
}
catch (CustomException ex)
{
foreach(var errorText in ex.GetDescriptions())
{
result.Errors.Add(this.ErrorMessage + errorText);
}
}
}
return result;
}

关于c# - 创建返回多条错误消息的自定义 ValidationAttribute 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30054278/

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