C#Web API-当我未传递所有查询字符串参数时收到错误消息

问题描述 投票:0回答:1

我有这个控制器,它基于日期过滤器来获取数据。如果两个日期都为空,则服务将分配默认值。

        [HttpGet]
        [Route("GetOrdersByUserId")]
        public IHttpActionResult GetOrdersByUserId([FromUri] DateTime? startDate = null, [FromUri]  DateTime? endDate = null)
        {
                try
                {
                    ResponseViewModel<object> resp = new ResponseViewModel<object>();
                    OrderService service = new OrderService();
                    resp.data = service.GetOrdersByUserId(startDate, endDate);
                    resp.status.code = (int)HttpStatusCode.OK;
                    return Ok(resp);
                }
                catch (Exception ex)
                {
                    WebApiExceptionHandler.Handle(Request, ref ex);
                    throw;
                }
        }

以下情况运行良好。

... / api / v1 /零售商/ GetOrdersByUserId?startDate = 2020-02-04&endDate = 2020-02-05

当删除一个或两个参数时,

但是我收到此错误消息“ 参数不能为空”。... / api / v1 /零售商/ GetOrdersByUserId

... / api / v1 /零售商/ GetOrdersByUserId?startDate = 2020-02-04

... / api / v1 /零售商/ GetOrdersByUserId?endDate = 2020-02-05

如果您能帮助我解决此问题,我将不胜感激。

c# url query-string webapi
1个回答
0
投票

我认为startDate和endDate的可选参数在这里没有用。您可以将其删除。

© www.soinside.com 2019 - 2024. All rights reserved.