gpt4 book ai didi

routing - 没有 Controller 标签的 Web API 路由

转载 作者:行者123 更新时间:2023-12-04 05:29:06 25 4
gpt4 key购买 nike

我正在尝试 WebAPI,到目前为止,我印象深刻,尽管在路由方面挣扎。
我有一条有效的路线:

routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{query}",
defaults: new { query = RouteParameter.Optional });

然而,我想要一个“其他” Controller (如果没有找到 Controller ,请使用这个),我当前的(非工作)路径是:
routes.MapHttpRoute(
name: "ElseApi",
routeTemplate: "api/g/{identifier}",
defaults: new {
controller = "Else",
action = "Generalise",
identifier = RouteParameter.Optional});

在我的 ElseController 中使用以下方法:
public string Generalise(string identifier)
{
return "gen";
}

可能是什么问题?不断收到 404 错误...

最佳答案

请记住按正确顺序添加路由。

路由机制正在使用它可以匹配的第一个路由,所以如果 "api/{controller}/{action}/{query}"路由首先被定义,然后是像 api/g/1 这样的调用也将使用这条路线,而不是第二条上。

这里的经验法则是首先定义最具体的路线,最后定义最一般的路线 - 您也可以阅读 this answer了解更多详情。

关于routing - 没有 Controller 标签的 Web API 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853823/

25 4 0