【发布时间】:2021-09-11 00:49:51
【问题描述】:
我有一个 REST API,当有验证消息时,我想返回一个 400 的 HTTP 状态以及验证消息列表。例如,在 Postman 中,我希望工具中的状态显示 400,并在响应正文中显示 JSON 消息列表。
有没有办法在 C# 中做到这一点?
public async Task<IActionResult> OnPostAsync([FromBody] ServiceRequest serviceRequest)
{
try
{
var user = User.FindFirst("client_id")?.Value;
int VendorId = await _audit.Log(user, AuditLogClass.API_READ, "serviceData");
List<string> ValidationMessages = _serviceRequestBO.processServiceRequest(serviceRequest);
if (ValidationMessages.Count == 0)
{
await _emailService.SendEmailAsync("mark.walker@magenium.com", "Success", "Service Request created");
return StatusCode(StatusCodes.Status200OK);
}
else
{
//StatusCodes.Status400BadRequest
return new JsonResult(ValidationMessages);
}
}
catch(Exception e)
{
_logger.LogError(e, "serviceData - GET");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
【问题讨论】:
-
这是 ASP.NET MVC 吗? ASP.NET Web API?还是 ASP.NET Core?请适当地标记您的问题,以帮助回答者了解您所处的框架,并帮助吸引了解该框架的人回答您的问题。
-
只做
return BadRequest(validationMessages);和return Ok();。 -
只需使用 BadRequest() 并在其中传递自定义消息
标签: c# asp.net-core