ODataException:当一个特殊字符作为过滤器参数值传递时,在X位置有一个未终止的字符串文字

时间:2017-01-23 13:45:59

标签: c# .net json odata httpclient

我在传递过滤器参数值时面临一个问题,该值包含一个特殊字符,即odata查询中的“#”。 示例:“http://100.100.100.44:9999/DataMockService.svc/DataLineItemSet()?$ expand = Sales& $ filter = SoldTo / ZipCode eq'30931#'& $ select = Sales / SalesNumber”

这引发了上述错误。在后端,我有一个记录,其中包含ZipCode列中的'30931#'。当我从查询中删除#时,查询执行正常。我甚至尝试将'#'编码为'%23'但没有用。请帮我解决一下。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用HtmlEncode

var encodedfilter = WebUtility.HtmlEncode(filter);

然后发送encodedfilter作为参数