asp.net webapi:如何传递可选参数

本文关键字:参数 何传递 net webapi asp | 更新日期: 2023-09-27 18:35:56

我正在使用新的 asp.net web api,并希望传递可选参数。需要填充一个属性以允许使用?符号传递参数是否正确?

我相信,在使用 uri 模板完成此操作之前。

有人有例子吗?

我目前正在将 id 传递到我的控制器中的 id 作为 int。但我需要通过一些日期。

asp.net webapi:如何传递可选参数

可以使用可为 null 的类型使参数可选:

public class OptionalParamsController : ApiController
{
    // GET /api/optionalparams?id=5&optionalDateTime=2012-05-31
    public string Get(int id, DateTime? optionalDateTime)
    {
        return optionalDateTime.HasValue ? optionalDateTime.Value.ToLongDateString() : "No dateTime provided";
    }
}

除了 Ian 提供的先前答案(这是正确的)之外,您还可以提供默认值,我认为这是一个更干净的选项,可以避免检查某些内容是否通过。 只是另一种选择。

public class OptionalParamsController : ApiController
{
    // GET /api/optionalparams?id=5&optionalDateTime=2012-05-31
    public string Get(int id, DateTime optionalDateTime = DateTime.UtcNow.Date)
    {...}
}