好的我觉得这很直接,但我错过了什么。我正在映射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的一部分。我尝试使用ArticlesController
控制器在Controllers下创建一个名为“myBlog”的文件夹,但这并没有什么区别。我总是找不到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
我在这里缺少什么?谢谢!
答案 0 :(得分:2)
使用:
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BlogApi",
routeTemplate: "api/myBlog/Articles/{id}",
defaults: new { controller = "Articles", id = UrlParameter.Optional }
);
并将置于默认路线之前。