使用MapHttpRoute为WebAPI配置路由时出错

时间:2016-08-17 12:06:13

标签: c# asp.net asp.net-web-api visual-studio-2015

我有一个带有WebAPI的ASP.Net Web应用程序,该应用程序是在Frameworks 4.0和Visual Studio 2013上构建的。

最近系统已格式化并安装了Visual Studio 2015。现在我无法在Global.asax文件中映射WebAPI的路由。

以下是我用来配置路由的代码。

RouteTable.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = System.Web.Http.RouteParameter.Optional }
        );

我一直收到以下错误。

' RouteCollection'不包含' MapHttpRoute'的定义和最好的扩展方法重载' HttpRouteCollectionExtensions.MapHttpRoute(HttpRouteCollection,string,string,object)'要求接收器类型为' HttpRouteCollection'

使用Nuget包管理器,我尝试重新安装旧代码中使用的ASP.NET MVC4。我安装/重新安装了WebAPI,包括之前使用的最新版本和旧版本。我尝试使用System.Web.Http(再次使用最新版本和以前使用的4.something版本),但我不断收到上述错误。请帮忙!

2 个答案:

答案 0 :(得分:4)

请检查您是否已引用System.Web.Http.WebH ost.dll。如果问题仍然存在,请尝试单独重新安装该程序包。 包 - Microsoft.AspNet.WebApi.WebHost

答案 1 :(得分:0)

请将下面的颜色移除。

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 = "Login", id = UrlParameter.Optional }
            );
        }
    }