将日期时间从角度$ http.get请求传递到Web API 2控制器

Sun*_*Sun 5 asp.net-web-api angularjs angular-http asp.net-web-api2

我有一个Web API 2控制器:

[HttpGet]
[Route("api/MyRoute/{date:datetime}")]
public IHttpActionResult Get(DateTime date)
{
    return Ok(date);
}
Run Code Online (Sandbox Code Playgroud)

和有角的$ http get调用:

$http.get("/api/MyRoute/" + new Date());
Run Code Online (Sandbox Code Playgroud)

这不起作用,我收到404错误。

404之后,我也收到此错误:

XMLHttpRequest无法加载http:// localhost:2344 / api / MyRoute / 2017-06-28T00:00:00.000Z。对预检请求的响应未通过访问控制检查:请求的资源上不存在“ Access-Control-Allow-Origin”标头。

但是,如果我将参数更改为除日期以外的任何参数,它将起作用。

我已经尝试过新的Date()。toISOString(),并且做到这一点。

那么如何将日期从Angular传递到Web API控制器?

Mar*_*und 9

问题似乎与路由属性中的日期时间规范有关。解决方案是将其删除并将路线定义为

[HttpGet]
[Route("api/MyRoute")]
public IHttpActionResult Get(DateTime date)
{
    return Ok(date);
}
Run Code Online (Sandbox Code Playgroud)

然后从客户端调用api

$http.get("/api/MyRoute?date=" + new Date().toISOString());
Run Code Online (Sandbox Code Playgroud)