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



我使用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),它与参数名匹配。jqGrid发送的一些额外的查询字符串参数没有被使用(忽略它们在我的原始分页代码中工作得很好)

查询URL中的字符串必须用单引号括起来。因此,上面的服务操作将被这样调用:页面/GetStuff ? = 1,行= 10,搜索="约翰"您的查询字符串看起来像这样吗?

最新更新