我正在使用新的asp.net web api,并希望传递可选参数,我相信你需要填充一个属性,所以它允许我使用传递params?符号
在用uri模板完成之前我相信。
有没有人真的感谢过一个例子或任何帮助。
我正在传递url中的id,它以int int
的形式到达我的控制器但我需要传递一些日期
答案 0 :(得分:6)
您可以使用可空类型:
使参数可选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";
}
}
答案 1 :(得分:3)
除了Ian提供的上一个答案,这是正确的,你还可以提供我觉得更清洁的默认值,避免检查是否通过了某些事情。只是另一种选择。
public class OptionalParamsController : ApiController
{
// GET /api/optionalparams?id=5&optionalDateTime=2012-05-31
public string Get(int id, DateTime optionalDateTime = DateTime.UtcNow.Date)
{...}
}