Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果.NET Core 3.1中控制器方法中的参数构造失败,如何更改http响应错误消息?_C#_Api_Http_.net Core - Fatal编程技术网

C# 如果.NET Core 3.1中控制器方法中的参数构造失败,如何更改http响应错误消息?

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

我有一个控制器方法,它将SignUpDTO对象作为参数。下面是SignUpDTO类代码,以及所述控制器方法的标头:

[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>);
}