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