【发布时间】:2020-04-09 00:34:37
【问题描述】:
我有一个 asp.net core 2.2 mvc 操作方法和来自客户端 JavaScript 代码的GET:
[Route("/search/{searchterm}")]
public IActionResult Search(string searchterm)
{
// code
}
现在,当我使用搜索字符串abc/def 进行搜索时
浏览器中的 uri 是 /search/abc%2Fdef 因为 / 被编码了
我得到了一个404,因为路由属性解码了斜线并且说/search/abc/def 与我的路由不匹配。
我想要的是将%2F 视为正常的内容,因此在我的操作方法中搜索字符串是abc/def。
有趣的是,这不会发生在我从 VS2017(我猜它运行 Kestrel)运行的本地机器上,而只会发生在它在 IIS 上运行的测试服务器上。
这是 IIS 的事情吗?或者负载均衡器正在做什么?
【问题讨论】:
标签: asp.net-core iis kestrel