我正在寻找一种处理查询字符串中空参数的正确方法。 Web Api不接受查询字符串为“?id = 1& category =”,这似乎是合理的,但我需要处理这种情况。
快速而肮脏的解决方案是使用将在服务器端解释的自定义值(例如“(空)”),但我对它不满意......
有什么建议吗?
感谢。
答案 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 =”则为空字符串或空格。