3

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

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

有什么建议吗?

谢谢。

4

2 回答 2

3

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

所以你的班级看起来像这样:

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

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

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

这样,如果查询字符串中的参数之一没有值,它将被简单地忽略。

于 2013-10-16T08:22:40.160 回答
1

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

    [DisplayFormat(ConvertEmptyStringToNull = false)]

如果缺少“类别”,那么它将为空。否则,如果 "category=" 或 "category=" 则为空字符串或空格。

于 2014-02-18T21:10:05.543 回答