【问题标题】:How to create custom Routing in ASP.NET Core如何在 ASP.NET Core 中创建自定义路由
【发布时间】:2016-10-07 13:52:05
【问题描述】:

我需要有关 URL 重写的帮助。我是 ASP.NET Core MVC 的新手。当我在 {param} 部分输入任何内容时,路由应将其重定向到我的控制器。

所以如果有人输入{param} 喜欢

https://mydoamin.com/{参数}

那么它应该被重定向到这个url:

https://mydoamin.com/{controller}/{action}/{actionurl}={param}

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc


    【解决方案1】:

    我找到了我的问题的答案。只需在默认路由之前在您的 startup.cs 文件中定义新的自定义路由即可。

    routes.MapRoute(
        "Member",                                             // Route name
        "{actionURL}",                                        // URL with parameters
            new { controller = "Pages", action = "Details" }  // Parameter defaults
    );
    

    它对我有用。

    【讨论】:

      【解决方案2】:

      我们可以使用这种方法来做同样的事情。 我觉得这样更方便。

       [Http("add/user/{user}/{password}")]
       public IActionResult AddUser(string user, string password)
       {
            //do your things here...
       }
      

      【讨论】:

        【解决方案3】:

        我可以推荐您查看 Stephen Walther 的这篇博文:ASP.NET 5 Deep Dive: Routing

        我不确定这是否如您所愿。 https://mydoamin.com/{controller}/{action}/{actionurl}={param} 对我来说似乎不是有效的 URL。 {actionurl}={param} 部分可能是作为键/值对出现的查询部分,并且始终以 ? 开头。如果您想要的 URL 看起来像 https://mydoamin.com/{controller}/{action}/?key1=value1&key2=value2

        ,您可能会修复您的路由

        【讨论】:

          【解决方案4】:

          我不知道这是否有用,但在 asp.net core 3 中这对我来说就像一个魅力。

          routes.MapRoute(
              "MoviesByReleaseDate",
              "movies/released/{year}/{month}",
              new { controller = "Movies", action = "ByReleaseDate" }
          );
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-10-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多