【发布时间】:2018-06-25 00:47:02
【问题描述】:
给定这样的动作:
public async Task<IHttpActionResult> GetStatus(string dataflowId, [FromUri] DateTimeOffset? lastTime = null)
以及用于访问操作的带有 uri 的客户端代码:
DateTimeOffset? last = somedatetime;
/* DO REQUEST TO */ new Uri( flow.StatusUri + (last.HasValue? "?lastTime="+last.Value.ToString():""));
引发了一个异常,它不能在 lastTIme 转换为 Nullable'1。
webapi 2 需要什么而不是客户端站点上的 ToString() 才能从查询字符串中获取日期时间
{"message":"The request is invalid.","modelState":{"lastTime":["The value '1/1/1601 12:00:00 AM 00:00' is not valid for Nullable`1."]}}
【问题讨论】:
-
请贴出实际代码和实际异常
-
您肯定需要对 DateTime 进行 UrlEncode 编码? stackoverflow.com/questions/3840762/…你能发布这个实际的网址吗?
-
更新了异常。列出的代码是实际代码。使用 HttpClient 发送 HttpRequestMessage。
-
System.Uri.EscapeDataString() 是解决方案
标签: c# asp.net-web-api