【问题标题】:Hide Area in URL using AttributeRouting使用 AttributeRouting 在 URL 中隐藏区域
【发布时间】:2012-04-30 04:54:02
【问题描述】:

我们正在使用区域对用 ASP.NET MVC3 编写的 API 进行版本控制,并使用 AttributeRouting 来定义我们的路由。

现在我们有一个“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/ 时得到的结果

提前致谢!

【问题讨论】:

    标签: c# asp.net-mvc-3 routing asp.net-mvc-routing attributerouting


    【解决方案1】:

    这样做:

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

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

    很抱歉给您带来了困惑!

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

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2011-06-18
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多