繁体   English   中英

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

[英]asp.net webapi: how to pass optional parameters?

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

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

有人有例子吗?

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

您可以使用可空类型使参数成为可选参数:

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)
    {...}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM