0

好的,我认为这将是直截了当的,但我错过了一些东西。我正在映射一个 Web API 路由并希望它如下所示:

http://localhost:1234/api/myBlog/Articles

并认为这会起作用:

routes.MapRoute(
   name: "BlogApi",                
   url: "api/myBlog/{controller}/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

“myBlog”段不是控制器或文件夹。我只是希望它成为 URL 的一部分。我尝试使用控制器在 Controllers 下创建一个名为“myBlog”的文件夹,ArticlesController但这并没有什么不同。我总是得到一个 404 未找到:找不到与名为“myBlog”的控制器匹配的类型。

当我不使用http://localhost:1234/api/myBlog路由中的默认控制器时也很奇怪Articles,所以也想知道这一点。

如果我执行以下操作,我只能让它工作:

routes.MapRoute(
   name: "BlogApi",                
   url: "api/Articles/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

并致电:http://localhost:1234/api/Articles

我在这里想念什么?谢谢!

4

1 回答 1

2

采用:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
   name: "BlogApi",                
   routeTemplate: "api/myBlog/Articles/{id}",
   defaults: new { controller = "Articles", id = UrlParameter.Optional }
);

and put it before the default route.

于 2013-01-11T19:44:24.940 回答