Asp.Net Web Api允许Url编码的正反斜杠

时间:2019-05-03 19:19:31

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

我正在尝试将带有一些特殊字符的字符串发送到我的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/

1 个答案:

答案 0 :(得分:0)

为了发送其中包含/(斜线)的字符串,我们可以在路由中使用wildcard parameters。像这样:

Route("getByArtNr/{*articleNr}")

这将允许将包含多个/字符的URL块作为一个参数读取。

希望有帮助。