在 ASP.NET MVC 2 路由的区域名称中添加斜杠

发布于 2024-09-16 18:51:45 字数 542 浏览 7 评论 0原文

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

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

而不是:

http://site/API/

我需要

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

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

我目前正在尝试区域调用 Api_1_0 并将其 MapRoute 修改为

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

但显然 URL 中的额外斜杠会导致运行时错误。

Currently I have an Area in my ASP.NET MVC 2 project call 'API', which is self explanatory.

As the API of my web application matures, I will soon need to add version numbers to my address. ie/

Instead of :

http://site/API/

I will need

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

What's the best practise to achieve this in ASP.NET MVC (2)?

I'm currently experimenting with an Area call Api_1_0 and modify its MapRoute to

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

But appearently the extra slash in the URL causes run time error.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

め七分饶幸 2024-09-23 18:51:45

我刚刚尝试了您的确切场景,它似乎与斜杠

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

alt text配合得很好

I just tried your exact scenario and it seems to be working just fine with the slash

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

alt text

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文