ASP.NET MVC 自定义路由

发布于 2024-10-07 06:15:31 字数 1240 浏览 3 评论 0原文

我想在我的应用程序中创建自定义路由。

我在 Global asax 文件中添加了一条新路线:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

当我使用 UserProfileController 时,它工作正常:

http://localhost :7738/UserProfile/Info/chopin

但是默认路由不起作用!

我看到这个 http://localhost:7738/Blog/Info?id=2这个 http://localhost:7738/Blog/Info/2

有人可以帮助我吗?

谢谢l。

I would like to create a custom routing in my app.

I added a new route in the Global asax file:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

It works fine when I use the UserProfileController:

http://localhost:7738/UserProfile/Info/chopin

But the Default routing is not working!

I see this http://localhost:7738/Blog/Info?id=2 instead of this http://localhost:7738/Blog/Info/2

Anybody can help me?

Thanks l.

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

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

发布评论

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

评论(3

瑾兮 2024-10-14 06:15:31

也许您可以将路线固定为:

 routes.MapRoute(
       "Profile",                                           // Route name
       "UserProfile/{action}/{userName}",                            // URL with parameters
       new { action = "Index", userName = UrlParameter.Optional }  // Parameter defaults
   );

Maybe you can fixed your route to:

 routes.MapRoute(
       "Profile",                                           // Route name
       "UserProfile/{action}/{userName}",                            // URL with parameters
       new { action = "Index", userName = UrlParameter.Optional }  // Parameter defaults
   );
颜漓半夏 2024-10-14 06:15:31

你们的路线基本上是一样的!

如何通过查询字符串获取 URI?

Your routes are essentially the same!

How are getting the URI with the query string?

春风十里 2024-10-14 06:15:31
public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.MapRoute(
    "UserProfile",
    "UserProfile/{action}/{userName}",
    new { contoller = "UserProfile", action = "Index", userName = UrlParameter.Optional }
  );

  routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
  );
}
public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.MapRoute(
    "UserProfile",
    "UserProfile/{action}/{userName}",
    new { contoller = "UserProfile", action = "Index", userName = UrlParameter.Optional }
  );

  routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
  );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文