我正在使用新的 asp.net web api,并希望传递可选参数。需要填充属性以便允许使用?符号传递参数是否正确?
我相信在使用 uri 模板完成此操作之前。
有人有例子吗?
我目前正在传递 url 中的 id,它作为 int 到达我的控制器。但我需要通过一些日期。
我正在使用新的 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)
{...}
}