1、添加一個WebApi 空項目
2、刪除WebApi項目下的 Global.asax 文件,因為我們要把WebApi項目整合到Mvc項目中去,全局只需要一個Global
3、修改 WebApi 項目中的 WebApiConfig.cs 文件 添加 GlobalConfiguration.Configuration.EnsureInitialized();
public static void Register(HttpConfiguration config) { // Web API 配置和服務 // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); GlobalConfiguration.Configuration.EnsureInitialized(); }
4、再 WebApi 項目中添加 RouteProvider.cs 用於Global.asax 調用
public class RouteProvider { public static void RegisterRoutes(RouteCollection routes) { var config = GlobalConfiguration.Configuration; WebApiConfig.Register(config); } }
5、刪除 MVC 項目中 RouteConfig.cs 文件,可以先排除到項目外
6、修改 Mvc 項目 Global.asax 文件
public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); RouteProvider.RegisterRoutes(routes); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); BundleConfig.RegisterBundles(BundleTable.Bundles); } }
大功告成
