WebApi-1 与MVC路由机制比较

时间:2024-07-29 22:07:32

在MVC里面,默认路由机制是通过url路径去匹配对应的action方法

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}", //{id}是可选参数
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}

WebApi的默认路由是通过http的方法(get/post/put/delete)去匹配对应的action,也就是说webapi的默认路由并不需要指定action的名称。

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", //定义路由模板,{id}是可选参数
defaults: new { id = RouteParameter.Optional }
);
}
}

WebApi也支持MVC里面的路由机制,但RestFul风格的服务要求请求的url里面不能包含action,所以,在WebApi里面是并不提倡使用MVC路由机制的。