asp.net - Asp.Net Web Api 允许 Url 编码的正向/反向斜杠
问题描述
我正在尝试将带有一些特殊字符的字符串发送到我的 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/
解决方案
为了发送一个包含/
(斜杠)的字符串,我们可以wildcard parameters
在路由中使用。像这样的东西:
Route("getByArtNr/{*articleNr}")
这将允许将具有多个/
字符的 URL 块作为单个参数读取。
希望能帮助到你。
推荐阅读
- ios - SwiftUI/Widget - 为什么 `Date` 的 `Text` 在 HStack 中占用了这么多空间
- python-3.x - Python3 + GnuPG,尝试导入私钥
- javascript - Puppeteer 仅从 URL 数组中获取第一项
- unity3d - 将对象放置在 GPS 坐标中的基础统一
- python - Heroku 和 Flask - ModuleNotFoundError:没有名为 'fetch_data' 的模块
- reactjs - 如何在反应中将特定文本包装在一个跨度的div中?
- javascript - PHP 无法正确读取 JSON
- java - Apache camel使用delete=true删除文件的方法是什么,是JDK FileUtil.deleteFile(file)
- c - tcgetsid 中的“tc”是什么意思?
- java - 使用 AES/GCM/NoPadding 在 java 中快速解密消息