Params object []值始终为null

时间:2014-04-07 13:50:59

标签: c# asp.net asp.net-web-api

我正在尝试使用params传递3个字符串和一个datetime对象。但是,无论发送什么,值始终为空。

public ResponseObject Method(params object[] values)
{
    // values is null
    var var1 = Convert.ToString(values[0]);
    var var2 = Convert.ToString(values[1]);
    var var3 = Convert.ToString(values[2]);
    var effectiveDate = Convert.ToDateTime(values[3]);
}

最终,我正在尝试创建一个可以包含可选参数的方法,但我不知道将要发送多少个参数。有什么建议吗?

编辑:

我对这是如何工作的新手,但据我所知,代码是通过http请求调用的。请求是这样的:

http://localhost:20559/api/Method?var1=aaa&var2=bbb&var3=ccc&var4=2013-01-30

1 个答案:

答案 0 :(得分:2)

如果您希望public ResponseObject Method(object[] values)正常工作,请求应该看起来像这样:

../api/Method?values=aaa&values=bbb&values=ccc&values=2013-01-30

这样你可以传递一个包含任意数量项目的数组。

然而,这不是我想做的事 只是去:

public ResponseObject Method(string var1, string var2, string var3, DateTime? var4 = null)

如果没有发送任何参数,它只是 null 指定 nullable 类型会使参数成为可选参数。