我正在尝试将带有一些特殊字符的字符串发送到我的Asp.Net Web Api控制器。但是,Asp.Net似乎无法解析url编码的字符串。发送诸如“ A%2F223%2F4”之类的内容是“ A / 223/4”的编码,对于反斜杠而言同样无效。它确实适用于其他特殊字符。有什么办法可以使它正常工作吗?还是可以关闭自动解码功能,以便我可以手动进行?
这是我控制器内部的功能:
[HttpGet, Route("getByArtNr/{articleNr}")]
public IHttpActionResult GetByArtNr(string articleNr)
{
Article article = dbContext.Article.Where(x => x.ArtNr == articleNr).FirstOrDefault();
if(article == null)
return NotFound();
return Ok(article);
}
示例请求: http://localhost:54282/api/v1/article/getByArtNr/A%2F223%2F4/
答案 0 :(得分:0)
为了发送其中包含/
(斜线)的字符串,我们可以在路由中使用wildcard parameters
。像这样:
Route("getByArtNr/{*articleNr}")
这将允许将包含多个/
字符的URL块作为一个参数读取。
希望有帮助。