【问题标题】:asp.net core routing - get URL parameters that include slashesasp.net 核心路由 - 获取包含斜杠的 URL 参数
【发布时间】:2017-02-08 04:49:49
【问题描述】:

是否可以在 asp.net 核心中有一个路由,将 URL 的整个路径作为我的 IActionResult 的变量返回。

例如:

  1. 对于https://example.com/servicespath 变量应该相等 到“服务”
  2. 对于https://example.com/services/cleaningpath 变量应该 等于“服务/清洁”
  3. 对于https://example.com/services/paintingpath 变量应该 等于“服务/绘画”
  4. 对于https://example.com/services/painting/interiorpath 变量应该 等于“服务/绘画/室内”

我的 Startup.cs 中只有以下路线

app.UseMvc(routes =>
{
    routes.MapRoute(
        "Redirect",
        "{*path}",
        new { controller = "Home", action = "Index", path = string.Empty }
    );
});

这适用于示例 1,但对于示例 2、3 和 4 将被忽略。

无论斜线的数量如何,我如何才能使路线生效?


更新:我的问题是我用路由定义装饰了我的控制器。我删除了它,一切正常。

【问题讨论】:

  • 如果您正在寻找请求路径,那可能在 HttpContext.Request 对象中。有一个 .Path 属性看起来很有希望。
  • @DavidPine 我遇到的问题是,在示例 2、3、4 中,我得到一个空白页。我猜是因为它没有找到它认为是有效的路线。
  • 这是一个正确的假设
  • 因此问题。 :-)

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


【解决方案1】:

我的问题是我用路由定义装饰了我的控制器。我删除了它,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2018-03-30
    • 2015-09-07
    • 2018-02-10
    • 2021-01-16
    • 2017-12-16
    相关资源
    最近更新 更多