我有一个名为News的控制器在我的WebAPI项目中,我有两个默认操作名为Get,处理以下URL:
/api/News <- 这将返回新闻列表 /api/News/123 <- 这将返回特定ID的新闻项。
到目前为止都很简单,显然默认路由处理了这些情况。接下来,我希望有一个像这样的URL:
/api/News/123/Artists <- 将返回与指定新闻相关的所有艺术家。
现在我对ASP.Net MVC和WebAPI相当陌生,因此这是我第一次处理路由。我已将默认路由修改为以下内容:
/api/News <- 这将返回新闻列表 /api/News/123 <- 这将返回特定ID的新闻项。
到目前为止都很简单,显然默认路由处理了这些情况。接下来,我希望有一个像这样的URL:
/api/News/123/Artists <- 将返回与指定新闻相关的所有艺术家。
现在我对ASP.Net MVC和WebAPI相当陌生,因此这是我第一次处理路由。我已将默认路由修改为以下内容:
routes.MapRoute(
name: "Default",
url: "{controller}/{id}/{action}",
defaults: new { controller = "News", action = "Get", id = UrlParameter.Optional }
在这里,我已将 {action} 移动到 URL 的末尾,并向我的 News 控制器添加了一个 Artists 方法。 这仍适用于前两种情况,但对第三种情况返回 404。
显然,路由无法处理 /api/News/123/Artists,但我不知道为什么。
我似乎找不到任何人使用 WebAPI 的示例,这使我认为我正在做一些根本性的错误。
任何帮助将不胜感激。