C# WebAPI获取在控制器上进行URL解码的请求参数

C# WebAPI获取在控制器上进行URL解码的请求参数,c#,web-services,asp.net-web-api,urlencode,C#,Web Services,Asp.net Web Api,Urlencode,我有一个问题,我向WebAPI控制器发出了一个GET,本质上是: $.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum)) 我正在使用encodeURIComponent对skuNum参数进行url编码,在开发工具中查看请求,我得到需要编码的skuNum的预期结果: 如预期,skuNum已从1000EF+变为1000EF%2B 但是,当我在WebAPI控制器中查看id参数时,它是通过未编码的: 这就

我有一个问题,我向WebAPI控制器发出了一个
GET
,本质上是:

$.getJSON('/api/feefo/getproductfeedback?id='+ encodeURIComponent(skuNum))
我正在使用
encodeURIComponent
skuNum
参数进行url编码,在开发工具中查看请求,我得到需要编码的
skuNum
的预期结果:

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

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


这就好像客户端url编码不知怎么被撤销了,有人能解释一下这里发生了什么吗?显然,我可以通过在控制器中进行编码来解决这个问题,但我想了解为什么会发生这种情况。

这是出于设计。默认情况下,API框架将解码URL编码的参数。编码只能用于传输数据。一旦进入服务器,开发人员就不必处理解码(交叉关注)。按预期使用值。

这是设计的。默认情况下,API框架将解码URL编码的参数。编码只能用于传输数据。一旦进入服务器,开发人员就不必处理解码(交叉关注)。按预期使用该值。@Nkosi谢谢,我想这是有道理的。请随意添加此作为答案,它可能会帮助其他人。