我在客户端使用React Js,在服务器端使用.Net Core 3.0 Web API。我有一个名为CreateAccount的API方法,返回类型是IActionResult。现在,如果我使用任何一个模型属性进行验证,那么我必须发送或返回验证消息以及空的模型数据。我是API的新手,尝试如下,但无法将字符串作为结果类型发送。
API方法
[AllowAnonymous]
[HttpPost("createaccount")]
public async Task<IActionResult> CreateAccount([FromBody]Users user)
{
try
{
if (ModelState.IsValid)
{
if (user == null)
return BadRequest(new { message = "Data is empty" });
if(user.UserType!="Admin")
{
return new ValidationResult("Only Admin can create new account");
}
return Ok(await _userService.CreateAnUserAccount(user));
}
}
catch(Exception e)
{
throw new ArgumentException(e.Message);
}
return ValidationProblem();
}
我不知道正确的.Net Core API编码部分,有人能帮我解决这个问题吗?
您可以返回一个ObjectResult
,其中包含除StatusCodes.Status200OK
之外的StatusCode
和一个包含要返回到客户端的任何信息的序列化对象,例如:
return new ObjectResult(new YourApiError() { Message = "message.." })
{
StatusCode = StatusCodes.Status405MethodNotAllowed
};