Asp.net mvc 4 搜索参数为空时的Web Api请求

Asp.net mvc 4 搜索参数为空时的Web Api请求,asp.net-mvc-4,asp.net-web-api,http-status-code-400,Asp.net Mvc 4,Asp.net Web Api,Http Status Code 400,我在mvc4中使用web api 我正在进行搜索功能,在某些情况下,比如如果我过滤数据,然后删除文本框值,然后按下搜索按钮,需要显示整个列表,但在我的情况下,显示400个错误请求。由于搜索参数为空,我知道如果搜索参数为空,那么它将在web api中抛出400错误 如果有合适的解决方案,请告诉我 data: "CurrPage=" + JsCurrPage + "&PageSize=" + parseInt(pagesize) + "&BuildTypeName=" + $("#B

我在mvc4中使用web api

我正在进行搜索功能,在某些情况下,比如如果我过滤数据,然后删除文本框值,然后按下搜索按钮,需要显示整个列表,但在我的情况下,显示400个错误请求。由于搜索参数为空,我知道如果搜索参数为空,那么它将在web api中抛出400错误

如果有合适的解决方案,请告诉我

data: "CurrPage=" + JsCurrPage + "&PageSize=" + parseInt(pagesize) + "&BuildTypeName=" + $("#BuildTypeName").val(),
在某些情况下,BuildType为空。搜查时

//控制器

public HttpResponseMessage GetBuildTypeList(int CurrPage, int PageSize, string BuildTypeName)
        {

        }
Net->XHR URL为:

http://{parentURL}/api/BuildTypeWebApi/GetBuildTypeList?CurrPage=1&PageSize=10&BuildTypeName=

如果允许CurrPage和PageSize为空,则需要接受可为空的整数:

public HttpResponseMessage GetBuildTypeList(int? CurrPage, int? PageSize, string BuildTypeName)
然后,您将更新查询,以便在未提供筛选值时返回整个列表

public HttpResponseMessage GetBuildTypeList(string BuildTypeName, int CurrPage = 1, int PageSize = 0)

在您的业务逻辑中,您可以假设页面大小为0表示所有记录。

发布这些记录的内容意味着什么?当我的字符串BuildTypeName为null时,它将引发异常400error@tom:My post Updated刚刚发布了您的所有代码,很难理解您在问什么KingString BuildTypeName正在搜索参数,如果它为null,则出现400个错误,我也像string BuildTypeName=null一样执行了操作,但仍然有400个错误,正在等待您的答复。您能否尝试删除“BuildTypeName”并查看结果?http://{parentURL}/api/BuildTypeWebApi/GetBuildTypeList?CurrPage=1&PageSize=10相同的400错误reuqest因为我的控制器方法也需要build-type name参数,正如您所说,我已经尝试过了,但它也抛出了400错误请求,只有当值为空或参数不匹配时,JFI-400错误请求,所以解决方案需要这样考虑..string BuildTypeName正在搜索参数,如果它为null,则出现400个错误,我也做了类似string BuildTypeName=null的操作,但仍然有400个错误,正在等待您的响应。在fiddler中进行调用,并让我们知道响应包含的内容response is 400 Bad request。为什么即使我已定义web api方法string BuildType=“”?web api通常非常有用,可以提供缺少的信息。你应该包括在内