RouteCollection'不包含'MapMvcAttributeRoutes的定义

M Z*_*tra 4 c# asp.net asp.net-mvc reference asp.net-mvc-routing

我只需将ASP.Net 4.5.2应用程序降级到ASP.Net 4.0.当然,这会带来问题,例如未正确安装的引用.我已经解决了其中的一些问题,但我无法理解错误:

CS106'RouteCollection'不包含'MapMvcAttributeRoutes'的定义, 并且没有 可以找到接受类型 'RouteCollection' 的第一个参数的扩展方法'MapMvcAttributeRoutes'

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapMvcAttributeRoutes();

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "device", action = "view", id = UrlParameter.Optional });
        }
    }
Run Code Online (Sandbox Code Playgroud)

有人知道我在这里要做什么吗?

额外信息

我使用的命名空间:

  • 使用System.Web
  • 使用System.Web.Mvc
  • 使用System.Web.Routing
  • 使用System.Web.Http

Visual Studio社区2015

Nig*_*888 6

支持属性路由的MVC唯一版本(提供对MapMvcAttributeRoutes扩展方法的支持)是MVC 5.

但是,MVC 5 支持.NET framework 4.5及更高版本.

所以,你有两个选择:

  1. 继续使用.NET Framework 4.5+
  2. 降级到MVC 4并且:
    1. Ditch属性路由完全并使用基于约定的路由
    2. 使用支持MVC 3和4的开源属性路由

由于Microsoft 正式不再支持低于4.5.2的任何.NET Framework版本(除了3.5,但这意味着降级到MVC 2以获得支持),我强烈建议您认真考虑第一个选项.