我在我的web api项目上工作。 当我尝试将get请求中的日期变量传递给web api方法时,我收到错误404.
这是web api方法:
[HttpGet]
[Route("ReportDetailed/{clientId}/{date}")]
public IHttpActionResult ReportDetailed(int clientId, DateTime date )
{
return Ok();
}
这里我试图访问上面的函数(来自URL的行):
http://localhost/station/api/Reports/ReportDetailed/12/Wed%20Jun%2001%202016%2000:00:00%20GMT+0300%20(Jerusalem%20Daylight%20Time)
其中clientId为12,日期解析为javascript date object:
/Wed%20Jun%2001%202016%2000:00:00%20GMT+0300%20(Jerusalem%20Daylight%20Time)
当我从web api函数中删除解析后的Date对象和日期参数上面的URL时,它的工作完美(所以我猜日期对象的问题)。
当我尝试在URI中传递对象时,我知道为什么会出现错误404?
答案 0 :(得分:1)
.NET无法识别日期格式 首先将您的日期转换为UTC字符串,这将返回您的日期的字符串表示。所以该值将作为字符串传递
var dateString= dateJs.toUTCString();
然后在你的C#代码中解析它。
public IHttpActionResult ReportDetailed(int clientId, string dateString)
DateTime dateC# = DateTime.Parse(dateString);
答案 1 :(得分:1)