我见过两者都被使用,所以我想知道,它们做相同的事情还是不同的事情?如果是后者,有什么区别呢?
我尝试通过查看 Visual Studio MVC 4 (rc) Web api 模板来自己回答这个问题,但遗憾的是它同时使用了两者,所以我的困惑仍然存在。该模板包含以下内容:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Use RouteParameter
对于 Web Api 路由(.MapHttpRoute
) and UrlParameter
对于标准 MVC 控制器路由(.MapRoute
)。如您所知,标准 MVC 和 Web API 在程序集和命名空间方面是两个完全不同的 API,即使两者非常相似。例如,您可以在控制台应用程序中自行托管您的 Web API,因此您甚至不需要引用System.Web.Mvc
组装,你当然会使用RouteParameter
在这种情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)