如何处理WebApi错误404

时间:2015-08-03 07:49:18

标签: 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";
}
}

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

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

请帮忙。 TIA

更新:

请仔细阅读!!!!

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

enter image description here

1 个答案:

答案 0 :(得分: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/jongalloway/looking-at-asp-net-mvc-5-1-and-web-api-2-1-part-4-web-api-help-pages-bson-and-global-error-handling