webapi 2中的Nullable DateTimeOffset fromuri参数无法正常工作

时间:2014-11-10 01:33:53

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

给出这样的行动:

public async Task<IHttpActionResult> GetStatus(string dataflowId, [FromUri] DateTimeOffset? lastTime = null)

和uri用于访问Action的客户端代码:

DateTimeOffset? last = somedatetime;
/* DO REQUEST TO */ new Uri( flow.StatusUri + (last.HasValue? "?lastTime="+last.Value.ToString():""));

一个例外是因为它无法转换为Nullable'1作为lastTIme。

在客户端站点上需要什么而不是ToString()才能从webapi 2获取来自查询字符串的日期时间

{"message":"The request is invalid.","modelState":{"lastTime":["The value '1/1/1601 12:00:00 AM  00:00' is not valid for Nullable`1."]}}

1 个答案:

答案 0 :(得分:1)

使用Uri.EscapeDataString解决了这个问题。

new Uri(flow.StatusUri + (last.HasValue? "?lastTime="+Uri.EscapeDataString(last.Value.ToString()):""))