【问题标题】:Returning a custom message when 404 Not Found occurs in Web APIWeb API 中出现 404 Not Found 时返回自定义消息
【发布时间】:2014-03-16 16:21:16
【问题描述】:

我已将config.Formatters.Remove(config.Formatters.XmlFormatter); 添加到 ASP.NET Web API 项目中 WebApiConfig.cs 的 Register 方法中。当发生 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。

【问题讨论】:

    标签: c# json asp.net-web-api


    【解决方案1】:

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

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

    This 文章展示了如何实现自定义 IHttpControllerSelector 和 IHttpActionSelector,它们使用典型的 ApiController 生成自定义 404 HttpResponseMessage。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2010-09-25
      • 2020-01-28
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 2017-12-27
      相关资源
      最近更新 更多