用于滤波器抛出错误的OData表达符号字符

时间:2016-01-07 11:45:19

标签: c# asp.net extjs odata

我正在使用流利的NHibernate。在过滤数据时,例如'Soup& Caesar'即包含'&符'标志的字符串抛出错误 - 未终止字符串从12开始。 我尝试研究它,发现ODataExpression.cs文件使用下面的代码进行过滤,因为它引发了错误。

<template id="bind" is="dom-bind">
  <script>
    bind.changeName = function() {
      var repeater = document.querySelector('#repeater');
      repeater.items[0].name = 'New Name' //doesn't work
      repeater.set('items#0.name', 'Another New Name'); // doesn't work as well

    }
  </script>
  <paper-button on-click="changeName">Change name</paper-button>

  <template id="repeater" is="dom-repeat" items='[{"name": "Foo", {"name": "Bar"}]'>
    <p>{{item.name}}</p>
  </template>
</template>

我想知道是否有任何办法可以避免这种情况。验证文本字段对我来说不是合适的解决方案,因为我在项目中走得很远并且改变一切都会有问题。

请注意 - 我使用的是EXTJS,它以编码形式发送数据,因此需要在代码后面进行操作。

感谢。

1 个答案:

答案 0 :(得分:1)

确保在提交之前对您的QueryString进行UriEncode,因此它看起来像这样:

http://www.example.com?text=Soup%20%26%20Caesar

考虑使用POST并从ASP.NET的Request.Form集合中读取文本框内容,以克服可能的其他影响(长度限制,换行符)