【问题标题】:Add slashes in Area name on an ASP.NET MVC 2 route在 ASP.NET MVC 2 路由的区域名称中添加斜杠
【发布时间】:2011-04-06 01:24:15
【问题描述】:

目前我的 ASP.NET MVC 2 项目调用“API”中有一个区域,这是不言自明的。

随着我的 Web 应用程序 API 的成熟,我很快需要在我的地址中添加版本号。即/

而不是:

http://site/API/

我需要

http://site/API/1.0/
http://site/API/1.1/
...

在 ASP.NET MVC (2) 中实现这一目标的最佳实践是什么?

我目前正在尝试使用 Area call Api_1_0 并将其 MapRoute 修改为

context.MapRoute(
    "Api_1_0_default",
    "Api/1.0/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional }
);

但似乎 URL 中多余的斜杠会导致运行时错误。

【问题讨论】:

  • 你能发布你得到的错误吗?
  • 我一直认为附加斜线会造成麻烦,但没有意识到我有一个现有的Api 区域,导致"Api/1.0/{controller}/{action}/{id}" 在到达之前落入Api 区域路线图到Api_1_0地区路线图。非常感谢队友:)

标签: asp.net-mvc model-view-controller asp.net-mvc-2 routing asp.net-mvc-areas


【解决方案1】:

我刚刚尝试了您的确切方案,它似乎与斜线配合得很好

            context.MapRoute(
                "Api_1_0_default",
                "Api/1.0/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            );

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 2011-03-17
    • 2014-05-05
    • 1970-01-01
    • 2021-02-13
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多