我们正在使用Areas对使用AttributeRouting在ASP.NET MVC3中编写的API进行版本化以定义我们的路由。
现在我们有一个“v1”区域,这是我们的第一个API版本。当我们到达v2时,我们将复制v1并进行修改。
我想对网站使用相同的版本,我不希望路由中的/ v1。
我的问题是,如何在网址中隐藏区域,以便我可以调用
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/时获得的内容
提前致谢!
答案 0 :(得分:4)
这样做:
[RouteArea("AreaName", AreaUrl = "")]
默认情况下,区域以区域名称为前缀。 AreaUrl属性允许您覆盖它。我将在这里更新维基:https://github.com/mccalltd/AttributeRouting/wiki/Areas
抱歉这个混乱!
此外,您不应在通过AR定义的任何网址的开头或结尾添加正斜杠。堆栈跟踪转储突出显示MVC正在名为“/”的文件夹中查找视图。如果你想要一个空网址,只需使用“”。