当WebApi的GET操作未找到内容时,我将返回一个NotFound IHttpActionResult
。除此之外,我想发送自定义消息和/或异常消息(如果有)。当前的ApiController
的NotFound()
方法不提供传递消息的重载选项。
有没有什么办法可以做到这一点?还是我必须编写自己的自定义IHttpActionResult
?
当WebApi的GET操作未找到内容时,我将返回一个NotFound IHttpActionResult
。除此之外,我想发送自定义消息和/或异常消息(如果有)。当前的ApiController
的NotFound()
方法不提供传递消息的重载选项。
有没有什么办法可以做到这一点?还是我必须编写自己的自定义IHttpActionResult
?
ApiController
的类,名为ApiController
NotFound
方法,让开发人员使用第一个可用的API[Obsolete("Use overload instead")]
protected NotFoundResult NotFound(string message)
,以鼓励使用NegotiatedContentResult
。请参见附加better NotFoundResult class。我知道PO用信息文本提出了问题,但另一种选择是使该方法返回一个IHttpActionResult并使用StatusCode函数来返回404
public async Task<IHttpActionResult> Get([FromUri]string id)
{
var item = await _service.GetItem(id);
if(item == null)
{
StatusCode(HttpStatusCode.NotFound);
}
return Ok(item);
}
需要返回404未找到的错误消息,我正在使用Dot Net 6.0。
这是代码
Problem(statusCode: 404, detail: "Put your detailed error message here");
其中Problem是ControllerBase类中的一个方法。