RouteCollection'不包含'MapMvcAttributeRoutes的定义

时间:2016-06-23 12:34:27

标签: c# asp.net asp.net-mvc reference asp.net-mvc-routing

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

  

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

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

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

额外信息

我使用的命名空间:

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

Visual Studio Community 2015

2 个答案:

答案 0 :(得分:6)

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

但是,MVC 5 only supports .NET framework 4.5 和更高

所以,你有两个选择:

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

    由于Microsoft officially no longer supports any version of .NET Framework lower than 4.5.2 (除了3.5,但这意味着降级到MVC 2获得支持),我强烈建议您认真考虑第一个选项。

答案 1 :(得分:0)

我使用routes.Ignore()。它似乎正在工作。

interactor