C# 如果.NET Core 3.1中控制器方法中的参数构造失败,如何更改http响应错误消息?
我有一个控制器方法,它将SignUpDTO对象作为参数。下面是SignUpDTO类代码,以及所述控制器方法的标头:C# 如果.NET Core 3.1中控制器方法中的参数构造失败,如何更改http响应错误消息?,c#,api,http,.net-core,C#,Api,Http,.net Core,我有一个控制器方法,它将SignUpDTO对象作为参数。下面是SignUpDTO类代码,以及所述控制器方法的标头: [HttpPost("register")] public async Task<ActionResult<UserDTO>> SignUpAsync([FromBody] SignUpDTO signUpData) ... public class SignUpDTO { [Required] [StringLength(100, Mi
[HttpPost("register")]
public async Task<ActionResult<UserDTO>> SignUpAsync([FromBody] SignUpDTO signUpData)
...
public class SignUpDTO
{
[Required]
[StringLength(100, MinimumLength = 3)]
public string Username { get; set; }
[Required]
[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,15}$")]
public string Password { get; set; }
[Required]
[RegularExpression(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$")]
public string MailAddress { get; set; }
}
我想更改随响应发送的JSON对象,并只发送简单的消息以与其他方法保持一致。响应应该如下所示:
{
"message": "Improper mail address!"
}
如果对象构造失败,是否可以更改默认响应?如果不是,我如何解决我的问题?谢谢所有扩展
ValidationAttribute
的属性都允许您通过设置ErrorMessage
属性()来提供自定义错误消息:
扩展
ValidationAttribute
的所有属性都允许您通过设置ErrorMessage
属性()来提供自定义错误消息:
您还可以将返回类型更改为
Task
此返回类型支持任何可能的对象:
[HttpPost(“寄存器”)]
公共异步任务SignUpAsync([FromBody]SignUpDTO SignUpdatea)
{
if(signUpdatea==null | |)
{
返回请求();
}
///您的应用程序代码
返回Ok();
}
您还可以将返回类型更改为任务
此返回类型支持任何可能的对象:
[HttpPost(“寄存器”)]
公共异步任务SignUpAsync([FromBody]SignUpDTO SignUpdatea)
{
if(signUpdatea==null | |)
{
返回请求();
}
///您的应用程序代码
返回Ok();
}
{
"message": "Improper mail address!"
}
[RegularExpression(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$", ErrorMessage = "Improper mail address!")]
[HttpPost("register")]
public async Task<IActionResult> SignUpAsync([FromBody] SignUpDTO signUpData)
{
if (signUpData == null || <any other validation>)
{
return BadRequest(<your response object with message only>);
}
/// your application code
return Ok(<your UserDTO>);
}