小编cra*_*r77的帖子

Web API空查询字符串参数

我正在尝试将多个参数传递给httpget Web api函数。我遇到的关键问题是将空查询字符串参数转换为null。

我可以通过创建如下所示的类来解决此问题:

public class CuttingParams
{
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string batch_number { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string filter { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string initiation_month { get; set; }
    [DisplayFormat(ConvertEmptyStringToNull = false)]
    public string initiation_year { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,我绝对不愿意接受必须为一次使用创建类的想法。

我已经做了大量研究,并且确实在努力寻找一种改变上述默认行为以外的方法的方法。我真的只想这样做:

    [HttpGet]
    public object Search(string batch_number, string filter, string initiation_month, string initiation_year)
    {
    }
Run Code Online (Sandbox Code Playgroud)

我是否缺少更改此默认行为的简便方法,或者应该考虑使用什么样的方法来实现自己的查询字符串解析器,而该解析器可以在全球范围内应用?

谢谢

更新资料

我的帖子似乎有些混乱,如果不清楚,抱歉。我会尽力澄清。

我想将简单的原始类型传递给我的HttpGet方法,如第二个代码片段所示。我的问题是空字符串参数将转换为null。

ie. this url: http://localhost/api/cutting/search?batch_number=&filter=&intiation_month=Jan&initiation_year=2016
Run Code Online (Sandbox Code Playgroud)

将在api中产生以下值:

batch_number = null
filter = null …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-web-api asp.net-web-api2

5
推荐指数
1
解决办法
4208
查看次数

标签 统计

asp.net ×1

asp.net-web-api ×1

asp.net-web-api2 ×1

c# ×1