使用AttributeRouting隐藏URL中的区域

我们使用Areas来对使用AttributeRouting在ASP.NET MVC3中编写的API进行版本化以定义我们的路由。

现在我们有一个“v1”区域,这是我们的第一个API版本。 当我们到达v2时,我们将复制v1并进行修改。

我想对网站使用相同的版本,我不希望路由中的/ v1。

我的问题是,我如何隐藏我的URL中的区域,以便我可以打电话

mywebsite.com/Users/1 

代替

 mywebsite.com/v1/Users/1 

这是我在控制器中的内容

  [RouteArea("/")] public class HomeController : Controller { // // GET: /v1/Home/ [GET("")] public ActionResult Index() { return View(); } } 

这是我尝试访问mywebsite.com/时得到的

错误

提前致谢!

做这个:

 [RouteArea("AreaName", AreaUrl = "")] 

默认情况下,区域以区域名称为前缀。 AreaUrl属性允许您覆盖它。 我将在这里更新维基: https : //github.com/mccalltd/AttributeRouting/wiki/Areas

对困惑感到抱歉!

此外,您不应在通过AR定义的任何url的开头或结尾添加正斜杠。 堆栈跟踪转储突出显示MVC正在名为“/”的文件夹中查找视图。 如果你想要一个空url,只需使用“”。