我有一个带有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版本),但我不断收到上述错误。请帮忙!
答案 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 }
);
}
}