我正在编写用于验证模型的自定义验证属性,除了#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
提供的信息之外,我还需要一些其他信息。我需要返回ValidationResult
和ErrorMessage
并在controller类中访问它,以便可以在响应有效负载中发送它。
ErrorCode
如果public class CustomValidationResult : ValidationResult
{
public int ErrorCode { get; set; }
protected CustomValidationResult(ValidationResult validationResult) : base(validationResult)
{
}
}
public class Mandatory : RequiredAttribute
{
public int ErrorCode { get; set; }
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
ErrorCode = 10;
var result = base.IsValid(value, validationContext);
ErrorCode = 10;
return new CustomValidationResult(result)
{
ErrorCode = ErrorCode
};
}
}
失败,我需要在控制器中获取ErrorCode。
谢谢。
答案 0 :(得分:0)
您可以从控制器返回,例如:-如果
if(!ModelState.IsValid)
{
return BadRequest(ModelState)
}
如果模型用ErrorMessage装饰,例如:
Class TypeA
{
[Required[ErrorMessage="Should not be null"]]
public string Name;
}
当模型状态作为BadRequest的一部分返回时,将返回错误消息。
如果您有任何自定义验证,则可以从控制器API如下将错误添加到ModelState:
例如:-
if(typeA.Name == "TestName")
{
ModelState.AddModelError("Name","TestName is not a valid name.");
}