WebAPI在控制器处获取UrlDecoded的请求参数

时间:2016-10-17 08:59:29

标签: c# web-services asp.net-web-api urlencode

我有一个问题,我正在向WebAPI控制器发出GET,基本上是这样的:

$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum))

我正在使用encodeURIComponent来对skuNum参数进行网址编码,在开发工具中查看请求我得到了需要编码的skuNum的预期结果:

enter image description here

skuNum已按预期从1000EF+变为1000EF%2B

但是,当我在WebAPI控制器中查看id参数时,它是通过未编码的方式进行的:

enter image description here

就好像客户端网址编码在某种程度上被撤消,有人能解释这里发生了什么吗?显然我可以通过在控制器中进行编码来解决这个问题,但我想了解为什么会发生这种情况。

1 个答案:

答案 0 :(得分:1)

这是设计上的。默认情况下,API框架将解码URL编码的参数。编码只应用于传输数据。一旦在服务器开发人员不应该处理必须解码它(横切关注)。按预期使用该值。