WebApi 2中未将具有特殊字符的UrlEncoded字符串绑定到字符串参数

时间:2018-08-16 07:12:39

标签: c# asp.net asp.net-web-api2 model-binding

我的Web API中有一个方法如下

[HttpGet]
[Route("api/{ms}")]
public string GetString([FromUri]string ms)
{
   return ms;
}

我将此方法称为{hostname}/api/foo,它按预期返回传递的参数,但是当我使用{hostname}/api/4FCziX60HXpgt%2be8pLUTmd6RJQtSOaN9Ug--%40sprintpcs.com调用此方法时,它失败并返回404。

此处4FCziX60HXpgt%2be8pLUTmd6RJQtSOaN9Ug--%40sprintpcs.com4FCziX60HXpgt+e8pLUTmd6RJQtSOaN9Ug--@sprintpcs.com的数字编码表示。我只是使用javascript encodeURIComponent('4FCziX60HXpgt+e8pLUTmd6RJQtSOaN9Ug--@sprintpcs.com')对其进行编码。

我尝试了多种解决方案,但始终失败。仅当我删除所有特殊字符后,此方法才有效。

0 个答案:

没有答案