Asp.Net Mvc項目添加WebApi


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);
        }
    }

大功告成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM