路径模式错误之前是不是有前导“/”?
Posted
技术标签:
【中文标题】路径模式错误之前是不是有前导“/”?【英文标题】:Is leading '/' before path pattern mistake?路径模式错误之前是否有前导“/”? 【发布时间】:2021-02-24 21:38:41 【问题描述】:URL 模式不带前导 / 字符,它不是 URL 路径的一部分。 当请求 URL 路径与 URL 模式匹配时,请求将被转发到端点函数,生成响应。 (Martin Freeman。Pro ASP.NET Core 3。第 284 页。最后一段。)
这是关于通过 app.UseEndpoint 为 EndpointMiddleware 配置映射的信息(参见下面的示例)
首先,为什么'/'不是路径的一部分? HttpContext.Request.Path 以'/'开头。
其次,这些代码和使用所有其他模式的代码以“/”开头的代码与不带“/”的代码的工作方式相同。是作者弄错了还是我看不懂?
app.UseEndpoints(rb =>
rb.Map("/var1/*others", async (ctx) =>
await ctx.Response.WriteAsync($"ctx.Request.RouteValues["var1"]");
);
);
【问题讨论】:
【参考方案1】:这里是官方link,The following table demonstrates example route templates and their behavior:
之后可以看到一张表。
表中Example Matching URI
都是/
开头的,也就是说匹配的url都需要以/
开头,而不是方法中的路由模式。
【讨论】:
以上是关于路径模式错误之前是不是有前导“/”?的主要内容,如果未能解决你的问题,请参考以下文章