Controller 现在具有用于201的CreatedAtRoute(),用于400的HttpBadRequest()的功能,等等。我看不到500的一个,我认为它是HttpInternalServerError()

但是,可以创建并返回HttpStatusCodeResult类:

[HttpPost]
public IActionResult Post([FromBody]string something)
{
   ...
    try{
    }
    catch(Exception e)
    {
         return new HttpStatusCodeResult((int)HttpStatusCode.InternalServerError);
    }
}

但是我想从e返回一些信息。这对于现场直播来说可能是不好的做法,但是当我们进行测试时,我们希望从API调用返回的主体中查看错误。
HttpStatusCodeResult不具有object类型的属性或任何用于提供元数据的属性。

该怎么办?我不想返回400,因为这不是内部服务器错误的意思。

最佳答案

return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Message describing the error here"));

或者
return InternalServerError(new Exception("SOME CUSTOM MESSAGE"));

关于c# - 如何从ASP.NET 5 Web Api返回HTTP 500?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34206391/

10-12 13:05
查看更多