C# 在AngularJS$http get中传递日期到ASP.NET Web Api

C# 在AngularJS$http get中传递日期到ASP.NET Web Api,c#,javascript,asp.net,angularjs,asp.net-web-api,C#,Javascript,Asp.net,Angularjs,Asp.net Web Api,将js日期对象传递给我的ASP.NET Web Api控制器时,我总是得到null。我已经尝试过传递字符串、字符串数组、timespan——所有这些功能,除了日期。检查请求时,日期按如下方式传递: date:"2014-03-13T15:00:00.000Z" 在角度上: $http({ method: 'get', url: 'api/stuff', params: { date: new Date() } ); 在我的ApiContro

将js日期对象传递给我的ASP.NET Web Api控制器时,我总是得到null。我已经尝试过传递字符串、字符串数组、timespan——所有这些功能,除了日期。检查请求时,日期按如下方式传递:

date:"2014-03-13T15:00:00.000Z"
在角度上:

$http({ 
    method: 'get', 
    url: 'api/stuff', 
    params: {
       date: new Date()
    }
);
在我的ApiController中:

public IEnumerable<StuffResponse> Get(
    [FromUri] DateTime? date
){ ... }
public IEnumerable Get(
[FromUri]日期时间?日期
){ ... }

传递日期的正确方法是什么?

Javascript中的日期格式与.NET DateTime解析不兼容。请参见此处了解有效的格式

这对我来说很有用:

$http({ 
    method: 'get', 
    url: 'api/stuff', 
    params: {
       date: $filter('date')(new Date(), "yyyy-MM-dd HH:mm:ss")
    }
);

要么使用不同的格式,如@Rondles所说的格式,要么将其作为字符串,并使用
DateTime进行解析。当通过postdata发送js日期时,解析
。NET设法创建了一个DateTime-因此我猜在使用get和params时也会起作用。日期的格式(“2014-03-13T15:00:00.000Z”)$http post data和get params完全相同,但ApiController无法将该字符串识别为get params的日期时间。我建议您尝试SnareHangers方法,并在发送之前将其转换为.NET可识别的格式。如果它仍然不起作用,那么你就有另一个问题。如果它确实起作用,那么当前的格式与这种AJAX请求类型相结合就是问题的根源。