使用 WebAPI 将 DateTimeOffset 作为 GET 请求中的路径的一部分传递

本文关键字:路径 一部分 请求 WebAPI DateTimeOffset 作为 GET 使用 | 更新日期: 2023-09-27 18:32:03

这个Get方法的URL是什么?

public class ValuesController : ApiController
{
    public string Get(DateTimeOffset startDate)
    {
        return "value";
    }
}

路由模板为

routeTemplate: "api/{controller}/{startDate}"

我试图点击这样的网址

api/values/12Sept2013
api/values/2011-06-01T14:03:00+00:00Z
api/values/2011-12-13

什么都没用..我什至用 HttpUtility.UrlEncode 编码了开始日期,但不起作用!

知道正确的格式是什么吗?

使用 WebAPI 将 DateTimeOffset 作为 GET 请求中的路径的一部分传递

像这样

~/api/values?startDate=2008%2F08%2F08

答案

要向 API 发送DateTimeOffset,请按如下方式设置其格式:

2017-04-17T05:45:18.070Z

完整的 API URL 如下所示:

http://localhost:1234/api/values/startDate=2017-04-17T05:45:18.070Z

通过以这种方式设置其格式,我能够将DateTimeOffset参数传递给我使用 Azure 移动服务创建的ApiController

法典

您可以使用ToString(yyy-MM-ddTHH:mm:ss.fffZ)来分析 DateTimeOffset。

var dateTimeOffsetAsAPIParameter = DateTimeOffset.Now.UtcDateTime.ToString("yyy-MM-ddTHH:mm:ss.fffZ");
string.Format("http://localhost:1234/api/values/?startDate={0}", dateTimeOffsetAsAPIParameter);