Asp.net 如何使用WebAPI捕获除允许根URI和帮助URI之外的所有URI
我有一个asp.net WebApi REST服务,我想在这里为404格式化我自己的消息(即找不到路由)。我正在使用属性路由 我的所有控制器路由都嵌套在Asp.net 如何使用WebAPI捕获除允许根URI和帮助URI之外的所有URI,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有一个asp.net WebApi REST服务,我想在这里为404格式化我自己的消息(即找不到路由)。我正在使用属性路由 我的所有控制器路由都嵌套在v1/下。另外,对于根url,我显示了一个html页面(即我提供了一个default.htm文件),在/help下也显示了一些帮助(通过mvc帮助页面)。所以,我不希望“一网打尽”的路由截获这些URL 我发现,即使和属性路由一起使用,它似乎也能工作,只是它也会捕获我的根页面 我尝试了以下方法 httpConfig.Routes.MapHttpRo
v1/
下。另外,对于根url,我显示了一个html页面(即我提供了一个default.htm文件),在/help下也显示了一些帮助(通过mvc帮助页面)。所以,我不希望“一网打尽”的路由截获这些URL
我发现,即使和属性路由一起使用,它似乎也能工作,只是它也会捕获我的根页面
我尝试了以下方法
httpConfig.Routes.MapHttpRoute(
name: "ResourceNotFound",
routeTemplate: "{uri}/{*v1}",
defaults: new { controller = "ResourceNotFound", uri = RouteParameter.Optional });
ie添加了{*v1}
,但是这也不起作用。我得到了以下信息(我的所有捕获控制器名为ResourceNotFoundController
)
未找到与请求URI名称匹配的HTTP资源http://localhost/myapi/'.
在与请求匹配的控制器“ResourceNotFound”上未找到任何操作。
我尝试了各种不同的routeTemplate
模式,但无法在允许根页面通过的地方工作
有人知道我怎么做吗
提前感谢您的帮助 在之前为根页面添加路由,以便catch allShow当前配置的路由不会捕获该路由。
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost/myapi/'.
</Message>
<MessageDetail>
No action was found on the controller 'ResourceNotFound' that matches the request.
</MessageDetail>
</Error>