为什么我的WCF数据服务不接受我的查询字符串?

时间:2011-08-10 21:08:50

标签: entity-framework query-string wcf-data-services

我正在使用jqGrid向用户显示一些数据。所需的功能之一是用户能够搜索网格。我正在使用WCF数据服务来获取此数据并将其返回。

当我第一次开始jqGrid开发时,我只需要分页(不需要搜索),并且成功地能够使用以下方法:

[WebGet(ResponseFormat = WebMessageFormat.Json)]
public String GetStuff(int? page, int? rows)
{ 
    // pagination going on in here
}

然后我需要搜索,所以我添加了一个string类型的参数:

[WebGet(ResponseFormat = WebMessageFormat.Json)]
public String GetStuff(int? page, int? rows, string search)
{ 
    // more stuff going on in here
}

然后我收到400 Bad Request错误。我假设它是因为搜索参数,我只是不明白为什么int有效(甚至bool有效),但string没有。它与WCF数据服务是RESTful有什么关系吗?

我当然仔细检查了jqGrid发送的查询字符串(通过ajax)并且它与param名称匹配。 jqGrid发送的一些额外的查询字符串参数没有被使用(忽略它们与我的原始分页代码一起正常工作)

1 个答案:

答案 0 :(得分:1)

查询URL中的字符串文字必须用单引号引用。所以上面的服务操作将被调用如下: ?/ GetStuff页= 1&安培;行数= 10安培;搜索= '约翰' 你的查询字符串看起来像那样吗?