给现有的MVC项目中添加WebAPI支持时需要注意的事项

1.直接右击MVC项目的controller文件夹,选择添加 WebAPI 控制器类v2.1,项目中会自动引用了system.web.http;
system.web.http.webhost;system.net.http。建议检查下项目引用里是否存在这些引用,如果没有则需要重复操作下本步骤,直到三个引用都添加。

2.在App_Start新建一个WebApiConfig类,补充以下代码(可以根据自己的需要,灵活调整下也无妨)
using System.Web.Http;

namespace WebApplication1
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",//根据自己的项目需要,路径中补充了action
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

3.最最重要的环节:!!!将WebApiConfig类注册到Global.asax中,此处一定要注意代码的先后顺序,否则在调试本项目下的webapi接口时会报404错误!
namespace WebApplication1
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            GlobalConfiguration.Configure(WebApiConfig.Register);//WebAPI路由注册必须在此处调用,如果放到了其他行,在调用api时可能会提示404!!!!!!!


            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            //不要在这里写注册webapi路由的代码,否则会报404错误!!!
            
        }
    }
}

4.下面的代码是新建mvc+webApi项目时,microsoft自动生成的Global.asax类中,mvc和webapi路由注册的代码示例,供参考!!
public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();//注册所有区域
            GlobalConfiguration.Configure(WebApiConfig.Register);//注册webAPI路由!!!
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);//注册过滤器
            RouteConfig.RegisterRoutes(RouteTable.Routes);//注册mvc路由
            BundleConfig.RegisterBundles(BundleTable.Bundles);//注册Bundle绑定

        
        }
    }

posted @ 2021-04-26 14:49  jeff151013  阅读(226)  评论(0编辑  收藏  举报