mvc参数开头的斜线

时间:2018-12-27 19:00:34

标签: asp.net-core routes asp.net-core-mvc

我在控制器中使用此路由

[HttpGet("Check/{*code}")]

几乎在所有情况下都可以使用,但是在参数开头不能使用斜杠,例如“ / 1HCZ0hVPloeftdvDHgGNg == ”会生成下一个网址

api/check//1HCZ0hVPloeftdvDHgGNg==

因此,控制器读取“ 1HCZ0hVPloeftdvDHgGNg ==“并崩溃解密代码。

如何解决?

1 个答案:

答案 0 :(得分:0)

您没有说您正在使用的ASP.NET版本,但我认为

using System.Web.HttpUtility;
string queryString = UrlEncode("/1HCZ0hVPloeftdvDHgGNg==");

应该为您工作。它将把斜杠(和任何其他奇怪的字符)转换为Uri安全值。就您而言,queryString = "%2f1HCZ0hVPloeftdvDHgGNg%3d%3d"

另一方面,您还需要使用UrlDecode将其也恢复为原始字符串。

功能文档为here