我正在寻找一种处理查询字符串中空参数的适当方法。Web Api不接受"?id=1&category="这样的查询字符串,这似乎是合理的,但我需要处理这种情况。
快速且简单的解决方案是使用自定义值,在服务器端进行解释(例如使用"(empty)"),但我对此并不满意...
有什么建议吗?
谢谢。
快速且简单的解决方案是使用自定义值,在服务器端进行解释(例如使用"(empty)"),但我对此并不满意...
有什么建议吗?
谢谢。
过去我处理这个问题的方法是创建一个类来保存您的参数,然后使用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)]
string.empty
赋值给Category属性。 - James