具有尾随空格的WebAPI参数未传播到端点

时间:2017-05-03 04:00:12

标签: c# asp.net-web-api

使用路由和控制器

[HttpGet]
[Route("api/test/{term}")]
public IHttpActionResult Get(string term)
{
}

我希望将api/test/1%20(UrlEncoded "1 ")的请求填充为term参数作为"1 "值。我已启用web.config的<httpRuntime relaxedUrlToFileSystemMapping="true" />部分中的system.web,因此请求即将通过,但会删除尾随空格。

端点用于某种建议功能,因此值"1""1 "会返回不同的结果。

关于我能找到的潜在解决方案的所有讨论都在谈论如何接受这样的请求:

WebAPI route 404's when there is a trailing space in the URL

Allowing reserved filenames in URLs

1 个答案:

答案 0 :(得分:0)

Hakunamatata共享的提示添加一个尾部斜杠适用于像"1 "这样的术语但是仍然不支持包含我需要支持的斜杠字符的字符串。我最终从查询字符串中获取了term参数。

[HttpGet]
[Route("api/test")]
public IHttpActionResult Get(string term)
{
}

支持请求格式api/test?term=TERM,即api/test?term=1%20%2f