Asp.Net核心Odata中,如何防止过滤字符串替换传递的文本
In Asp.Net core Odata, how to prevent filter string from replacing text passed
我正在传递一个 odata
查询,如下所示
http://localhost:5000/odata/Levels?$filter=contains(Code, '+14')
然而,当它进入我的控制器时,我看到接收到的过滤器对象被替换为
{contains(Code, ' 14')}
如您所见,+14
被替换为 14
,其中 + 被替换为 space,因此我的查询失败了。我该如何解决这个问题?
这样试试:
http://localhost:5000/odata/Levels?$filter=contains(Code, encodeURIComponent('+14'))
我不知道你如何生成 URI 的其余部分,但你应该在将 +14
发送到服务器之前用编码表示替换它。
As you can see +14 is being replaced 14 where + is replaced with a
space due to which my query is failing. How can I fix this issue?
将+
替换为%2B
,然后像这样的odata查询:
http://localhost:5000/odata/Levels?$filter=contains(Code, '%2B14')
我正在传递一个 odata
查询,如下所示
http://localhost:5000/odata/Levels?$filter=contains(Code, '+14')
然而,当它进入我的控制器时,我看到接收到的过滤器对象被替换为
{contains(Code, ' 14')}
如您所见,+14
被替换为 14
,其中 + 被替换为 space,因此我的查询失败了。我该如何解决这个问题?
这样试试:
http://localhost:5000/odata/Levels?$filter=contains(Code, encodeURIComponent('+14'))
我不知道你如何生成 URI 的其余部分,但你应该在将 +14
发送到服务器之前用编码表示替换它。
As you can see +14 is being replaced 14 where + is replaced with a space due to which my query is failing. How can I fix this issue?
将+
替换为%2B
,然后像这样的odata查询:
http://localhost:5000/odata/Levels?$filter=contains(Code, '%2B14')