为什么使用"MapRoute“作为”默认“路由,而使用"MapHttpRoute”作为"DefaultApi“路由?
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
发布于 2012-08-21 02:33:31
如果您在ASP.NET之上使用Web API,它们最终都将在相同的底层ASP.NET路由表上操作-然而,正如正确指出的那样,从用户的角度来看,您将调用两个不同的方法来注册路由。
路由是这样设计的,这样当在ASP.NET外部托管时,Web就不必依赖System.Web了。
请记住,Web API并不是位于MVC、Web Forms或ASP.NET之上。它可以托管在web上下文(ASP.NET)中,但也可以自托管(控制台、WPF等),甚至托管在内存中(无需端口使用,对于轻量级端到端测试非常有用)。
发布于 2012-08-21 02:27:27
MapRoute
是为“普通”Web控制器设计的,而MapHttpRoute
是为ASP.NET API控制器设计的。
https://stackoverflow.com/questions/12042853
复制相似问题