Web Api:在查询字符串中传递一个空参数

时间:2013-10-16 08:00:01

标签: asp.net-mvc query-string asp.net-web-api

我正在寻找一种处理查询字符串中空参数的正确方法。 Web Api不接受查询字符串为“?id = 1& category =”,这似乎是合理的,但我需要处理这种情况。

快速而肮脏的解决方案是使用将在服务器端解释的自定义值(例如“(空)”),但我对它不满意......

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:3)

我过去处理过的一种方法是创建一个类来保存参数,然后使用ModelBinder属性将查询参数绑定到类属性。

所以你的课看起来像这样:

public class QueryParams
{
    public string Category {get; set;}
    public int Id {get; set;}
}

api控制器中的方法如下所示:

public objectToReturn Get([ModelBinder] QueryParams)
{
    //code here
}

这样,如果查询字符串中的某个参数没有值,则只会忽略它。

答案 1 :(得分:1)

您可以使用此属性来实现您想要的效果。

    [DisplayFormat(ConvertEmptyStringToNull = false)]

如果缺少“category”,则它将为null。 否则,如果“category =”或“category =”则为空字符串或空格。