我正在寻找一种正确的方法来处理查询字符串中的空参数。Web Api 不接受查询字符串为“?id=1&category=”,这似乎是合理的,但我需要处理这种情况。
快速而肮脏的解决方案是使用将在服务器端解释的自定义值(例如“(空)”),但我对它不满意......
有什么建议吗?
谢谢。
我正在寻找一种正确的方法来处理查询字符串中的空参数。Web Api 不接受查询字符串为“?id=1&category=”,这似乎是合理的,但我需要处理这种情况。
快速而肮脏的解决方案是使用将在服务器端解释的自定义值(例如“(空)”),但我对它不满意......
有什么建议吗?
谢谢。
我过去处理过的一种方法是创建一个类来保存您的参数,然后使用 ModelBinder 属性将您的查询参数绑定到类属性。
所以你的班级看起来像这样:
public class QueryParams
{
public string Category {get; set;}
public int Id {get; set;}
}
您的 api 控制器中的方法如下所示:
public objectToReturn Get([ModelBinder] QueryParams)
{
//code here
}
这样,如果查询字符串中的参数之一没有值,它将被简单地忽略。
您可以使用此属性来实现您想要的。
[DisplayFormat(ConvertEmptyStringToNull = false)]
如果缺少“类别”,那么它将为空。否则,如果 "category=" 或 "category=" 则为空字符串或空格。