Asp.net mvc 详细方法

发布于 2024-11-04 07:12:44 字数 1289 浏览 0 评论 0原文

我正在开发一个项目,在该项目中我使用了默认路由

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}/{name}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional }  // Parameter defaults
        );

我有一个用户控制器和索引、创建和详细信息等方法

我不想创建诸如 http://mysite/users/details/111/somename 相反,我想创建 http://mysite/users/111/somename 就像 stackoverflow 类型的 url 一样。 我知道我可以通过注册这样的路由(在默认路由之前)来实现,

routes.MapRoute(
            "UsersDetails",                                              // Route name
            "Users/{id}/{name}",                           // URL with parameters
            new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }  // Parameter defaults
        );

但随后我的所有其他网址开始产生问题。例如,如果我有网址 http://somesite/users/registersuccess

是否有解决此问题的方法,或者我应该注册所有网址。

问候

帕明德

I am working on a project, where I have used the default routing

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}/{name}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional }  // Parameter defaults
        );

I have a users controller and methods like Index, create and details

I dont want to create links like http://mysite/users/details/111/somename
instead i want to create http://mysite/users/111/somename
like stackoverflow kind of url.
I know I can achieve by registering a route like this (before default route)

routes.MapRoute(
            "UsersDetails",                                              // Route name
            "Users/{id}/{name}",                           // URL with parameters
            new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }  // Parameter defaults
        );

but then all my other urls start creating problem. for example if i have url
http://somesite/users/registersuccess

Is there in workaround for this issue, or I should register all the urls.

Regards

Parminder

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

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

发布评论

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

评论(1

筱武穆 2024-11-11 07:12:44

您需要对路线的 id 参数进行限制:

routes.MapRoute(
    "UsersDetails",
    "Users/{id}/{name}",
    new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }, 
    new { id="\d+" }
    );

这样您的其他路线就不会受到影响。

You'd need a constraint on your id parameter for your routes:

routes.MapRoute(
    "UsersDetails",
    "Users/{id}/{name}",
    new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional }, 
    new { id="\d+" }
    );

Then your other routes wouldn't be affected.

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