【发布时间】:2018-04-06 08:08:48
【问题描述】:
我正在开发 Web API 2。现在我的路由表是
public void RegisterRoute(HttpRouteCollection routes) {
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
这适用于网址:
http://localhost/api/user
http://localhost/api/user/4
当我指定不存在的控制器名称 (http://localhost/api/abcd) 时,结果为 JSON
{"message":"No HTTP resource was found that matches the request URI 'http://loocalhost/api/abc'."}
我需要为 url 返回相同的结果:
http://localhost/api/abc/abc/abc/abc
http://localhost/abc/abc/abc/abc
http://localhost/a
现在我有
如何为所有不匹配的路由返回带有 404 代码的 JSON?
注意:像http://localhost/api/user/4 这样的一些动作也可以返回 404 并在正文中包含一些数据。所以,如果路线不匹配,我需要有可能处理 404 和 404。
请提出建议。这个我试过了
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/Missing" />
</httpErrors>
但随后返回 404 的操作也会重定向到 /Error/Missing
【问题讨论】:
标签: c# asp.net-web-api routing