我正在使用Webapi 2.0。我传递了一个值为vb / c4t + UuRLnQ2W / g8SQ ==的参数。模型绑定后,我在代码中获得了authId的值,为vb / c4t UuRLnQ2W / g8SQ ==(+)符号被替换为空格。你能帮我个忙吗?
网址:api / employee / 1234?authId = vb / c4t + UuRLnQ2W / g8SQ ==
[HttpGet]
public IHttpActionResult Get(string eid, string authId)
{
}
答案 0 :(得分:1)
+
符号在查询字符串中具有不同的含义。它用来表示一个空间。在查询字符串中另一个具有语义重要性的字符是&
,用于分隔查询字符串中的各种var=value
对。
大多数服务器端脚本会在使用查询参数之前对其进行解码,以便将+
正确转换为空格。现在,如果您希望在查询字符串中出现文字+
,则需要指定%2B
。
示例yourString.replace("+","%2b")
替代方法:您应URLEncode
查询字符串值,以确保您不会丢失内容。
另一种替代方法是为+
符号创建您自己的代码。例如12sfdhjsj8722nsn2232dfsdd
将代表一个+
符号。因此您可以用代码替换+号,然后在服务器端使用相同的代码将其取回。