我尝试使用基于属性的路由。但是,当我尝试以下代码片段来激活基于属性的路由时,我收到以下错误消息:
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 。
这里有什么问题以及我如何解决这个问题?
答案 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