' RouteCollection'不包含' MapMvcAttributeRoutes'的定义。

时间:2016-08-09 12:09:15

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我尝试使用基于属性的路由。但是,当我尝试以下代码片段来激活基于属性的路由时,我收到以下错误消息:

  

RouteCollection'不包含的定义   ' MapMvcAttributeRoutes

这是我的代码:

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

}

以下是参考资料:

using System;
using System.Web.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Routing;

我项目的Thre Framework版本为 4.5.2

这里有什么问题以及我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我现在开始工作了。我做了以下事情:

我首先添加了一个名为App_Start的新文件夹。在此文件夹中,我创建了一个名为RouteConfig.cs的新类文件。

以下代码已添加到上述文件中:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapMvcAttributeRoutes(); //Attribute Routing
    }

我使用Application_Start方法中的以下代码将global.asax文件添加到我的项目中:

    protected void Application_Start(object sender, EventArgs e)
    {
        //AreaRegistration.RegisterAllAreas();
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }

然后在Extras>下NuGet包管理器> Pacakge Manager Console我将Microsoft ASP.NET MVC 5.2.3包添加到我的项目中。

最后,我添加了一个新的MVC5 Empty控制器,其代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication4.Controllers
{
    [RoutePrefix("products")]
    public class DefaultController : Controller
    {
        // GET: Default
        [Route]
        public ActionResult Index()
        {
            return Content("It Works!");

            //return View();
        }
    }
}

在此之后,我可以通过输入以下内容在项目中打开我的项目:

http://localhost:65311/products