【发布时间】:2017-09-30 17:46:09
【问题描述】:
带有路由和控制器
[HttpGet]
[Route("api/test/{term}")]
public IHttpActionResult Get(string term)
{
}
我希望将api/test/1%20(UrlEncoded "1 ")的请求作为"1 " 值填充到term 参数中。我在 web.config 的 system.web 部分启用了 <httpRuntime relaxedUrlToFileSystemMapping="true" />,因此请求可以通过,但是,尾随空格已被删除。
端点用于某种建议功能,因此值 "1" 和 "1 " 返回不同的结果。
所有关于我能找到的潜在解决方案的讨论都在谈论如何接受这样的请求:
WebAPI route 404's when there is a trailing space in the URL
【问题讨论】:
-
你可以添加一个斜杠来强制它通过尾随空格。 example.com/api/1%20
-
是的,这有效@Hakunamatata,感谢您的建议。我意识到我还需要支持像
"11/"这样的术语,然后会破坏路由,所以我最终从查询字符串中获取了term参数。
标签: c# asp.net-web-api