Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API响应为null_C#_Rest_Asp.net Web Api_Response - Fatal编程技术网

C# Web API响应为null

C# Web API响应为null,c#,rest,asp.net-web-api,response,C#,Rest,Asp.net Web Api,Response,我开发了一个webapi,它接受两个日期时间参数(开始和结束),然后应该给出不同的记录 public HttpResponseMessage GetMeterPing(DateTime start, DateTime end) { try { var startDateTime = start; var endDateTime = end; var result = medEnt

我开发了一个
webapi
,它接受两个日期时间参数(开始和结束),然后应该给出不同的记录

public HttpResponseMessage GetMeterPing(DateTime start, DateTime end)
    {
        try
        {


            var startDateTime = start;
            var endDateTime = end;

            var result = medEntitites.tj_xhqd.Where(m => m.sjsj >= startDateTime && m.sjsj <= endDateTime)
                                             .OrderByDescending(o => o.sjsj)
                                             .Select(s => new { s.zdjh, s.sjsj, s.xhqd })
                                             .Distinct()
                                             .FirstOrDefault();                                             


            return Request.CreateResponse(HttpStatusCode.OK, new { data = result });


        }
        catch (Exception ex)
        {
            return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
        }
    }
公共HttpResponseMessage GetMeterPing(日期时间开始,日期时间结束) { 尝试 { var startDateTime=开始; var endDateTime=end; var result=medentites.tj_xhqd.Where(m=>m.sjsj>=startDateTime&&m.sjsj o.sjsj) .Select(s=>new{s.zdjh,s.sjsj,s.xhqd}) .Distinct() .FirstOrDefault(); return Request.CreateResponse(HttpStatusCode.OK,new{data=result}); } 捕获(例外情况除外) { 返回请求.CreateErrorResponse(HttpStatusCode.NotFound,ex); } } API URL:
http://localhost:14909/api/meters/GetMeterPing/2018-2018年4月28日00:00:00-04-27T23:59:59

当我运行这个
webapi

{“数据”:null}

在调试时,
结果
也是
null


非常感谢您提供的任何帮助

您对问题的描述听起来好像您正在执行的Linq查询没有返回任何结果,因此您对
FirstOrDefault
的调用是默认的,也就是说它返回null。然后,您不执行其他验证,并将此行的结果设置为具有
数据
属性的匿名投影的值进行响应。

您对问题的描述听起来像是正在执行的Linq查询没有返回任何结果,因此您对
FirstOrDefault
的调用是默认的,也就是说它返回null。然后,您不执行额外的验证,并将此行的结果设置为具有
数据属性的匿名投影的值进行响应。

这里有一个明显的问题,但
2018-04-28:00:00:00
之前的
2018-04-27T23:59:59
?或者更准确地说,一个日期如何满足这两个条件:
=2018-04-28
…我没有看日期的顺序。这肯定是为什么Linq查询没有返回结果的根本原因。@john,我将回答这个问题。这似乎源于一个相当简单的印刷错误,但它有一个足够清楚的解释,我不认为这是一个坏问题。至少,它可以作为一个例子,说明在构建此类服务时必须小心。由于所提供的日期对服务来说毫无意义,因此如果日期被翻转,代码将受益于抛出
BadRequest
。(对于一些API来说,发送完全相同的日期是表示“不在”的方式)@john…没什么大不了的。只是在他想要的情况下,这只是一个印刷错误。翻转日期是api中支持“日期不在范围内”功能的一种方式,因此需要额外的验证来增加其意图的表达能力,而不仅仅是拼写错误。@Alan我明白你的意思。我将收回我的投票。这里有一个明显的问题,但在
2018-04-28800:00:00
之前的
2018-04-27T23:59:59
是什么宇宙?或者更准确地说,一个日期如何满足这两个条件:
=2018-04-28
…我没有看日期的顺序。这肯定是为什么Linq查询没有返回结果的根本原因。@john,我将回答这个问题。这似乎源于一个相当简单的印刷错误,但它有一个足够清楚的解释,我不认为这是一个坏问题。至少,它可以作为一个例子,说明在构建此类服务时必须小心。由于所提供的日期对服务来说毫无意义,因此如果日期被翻转,代码将受益于抛出
BadRequest
。(对于一些API来说,发送完全相同的日期是表示“不在”的方式)@john…没什么大不了的。只是在他想要的情况下,这只是一个印刷错误。翻转日期是api中支持“日期不在范围内”功能的一种方式,因此需要额外的验证来增加其意图的表达能力,而不仅仅是拼写错误。@Alan我明白你的意思。我将撤回我的投票。