如何处理WebApi错误404

dan*_*dan 6 c# asp.net asp.net-mvc-4 asp.net-web-api

我正在同一个域中使用WebApi2实现MVC 5应用程序.我现在的问题是如何处理WebApi中的错误404.我在WebApi中使用路由.

[RoutePrefix("myapi")]
public class MyApiController : ApiController 
{
[Route("value")]
public string myvalue()
{
return "value";
}
}
Run Code Online (Sandbox Code Playgroud)

现在我有我的url "/myapi/value"返回值字符串.问题是我请求"/myapi/value/bla/bla" 或任何不在我的API中的URL,它返回错误404.

我试过这个链接http://weblogs.asp.net/imranbaloch/handling-http-404-error-in-asp-net-web-api,它只适用于WebApi项目,但不适用于MVC + WebApi项目.

请帮忙.TIA

更新:

请仔细阅读!!!!

如果您未在WebApi中处理404,这将是默认页面.它包括你的物理路径.

在此输入图像描述

Kev*_*cks 1

更新:

我认为以下内容对如何为 WebApi 2+ 项目实现错误处理有更好的描述:http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling

当我在同一个项目中组合 MVC 和 WebApi 时,我的项目中遇到了两个问题。

首先是我对正常 MVC 页面的错误处理不再起作用。为了解决这个问题,我首先通过 MVC 控制器路由初始化了 WebApi 路由,并在 web.config 中进行了一些小的调整,如您的帖子中所述。

其次,如果您想处理无效的 webapi 路由,例如正确的目录但具有无法解析的错误值。尝试以下链接的“全局错误处理”部分中的解决方案:http://weblogs.asp.net/jongalway/looking-at-asp-net-mvc-5-1-and-web-api-2- 1-第 4 部分-web-api-help-pages-bson-and-global-error-handling