【问题标题】:ASP.NET MVC route to different addressASP.NET MVC 路由到不同的地址
【发布时间】:2013-09-01 05:40:31
【问题描述】:

在RouteConfig.cs中,默认路由是

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

这会将http://www.website13121212.com/home/about 路由到“Home”控制器和“Index”操作。

如何将http://www.website13121212.com/home/about 路由到http://www.website13121212.com/about 并基本上使用相同的“Home”控制器和“Index”操作?

所以任何请求../home/about 的人都应该自动基本上“重定向”到.../about

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


    【解决方案1】:

    把这条路线放在所有路线的底部

    routes.MapRoute(
                     name: "About",
                     url: "/about",
                     defaults: new 
                     {
                          controller = "Home", 
                          action = "About",
                          id = UrlParameter.Optional 
                     });
    

    这会将http://www.website13121212.com/about 路由到Home 控制器中的About 操作。

    【讨论】:

    • 这是否会自动将用户重定向到http://www.website13121212.com/about,以便用户知道链接/地址已更改?
    • @PKKG 不要删除默认路由。似乎您已删除默认路由。当您输入 {controller}/{action} 时,它将使用默认路由进行路由。
    【解决方案2】:

    从路由字符串中删除{controller}。这将显示“我不希望提供控制器”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      相关资源
      最近更新 更多