当Web API中出现404 Not Found时返回自定义消息

本文关键字:Found Not 返回 自定义消息 Web API | 更新日期: 2023-09-27 17:50:26

我将config.Formatters.Remove(config.Formatters.XmlFormatter);添加到WebApiConfig.cs的Register方法中。. NET Web API项目。当404 Not Found异常发生时,它可以很好地返回JSON。我得到如下消息:

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:2034/api/dfdf'.","MessageDetail":"No type was found that matches the controller named 'dfdf'."}

是否可以重写此消息以返回自定义消息?如果有,是如何做到的?我正在使用Web API 2

当Web API中出现404 Not Found时返回自定义消息

这看起来很简单,但是在很多地方ASP。Net自动创建404(而不是您的控制器手动返回404响应)。

  • 没有路由匹配。
  • 路由匹配,但没有找到{controller}。
  • 未找到具有{控制器}名称的类型。
  • 在选定的控制器中没有找到匹配的操作方法,因为没有以请求HTTP方法动词开头的操作方法或没有找到具有IActionHttpMethodProviderRoute实现属性的操作方法或没有找到具有{action}名称的方法或没有找到具有匹配{action}名称的方法。

本文展示了如何实现自定义IHttpControllerSelectorIHttpActionSelector,它们使用一个典型的ApiController来生成您的自定义404 HttpResponseMessage