【发布时间】:2017-02-08 04:49:49
【问题描述】:
是否可以在 asp.net 核心中有一个路由,将 URL 的整个路径作为我的 IActionResult 的变量返回。
例如:
- 对于https://example.com/services,path 变量应该相等 到“服务”
- 对于https://example.com/services/cleaning,path 变量应该 等于“服务/清洁”
- 对于https://example.com/services/painting,path 变量应该 等于“服务/绘画”
- 对于https://example.com/services/painting/interior,path 变量应该 等于“服务/绘画/室内”
我的 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