【问题标题】:Error passing Datetime as querystring parameter to Servicestack.net GET method将日期时间作为查询字符串参数传递给 Servicestack.net GET 方法时出错
【发布时间】:2012-02-25 19:13:08
【问题描述】:

我试图将 DateTime 对象作为查询字符串参数传递给使用 ServiceStack.net 构建的 Web 服务方法。

日期在传递时是正确的 URL 编码,但我不断收到以下错误:

"Message":"KeyValueDataContractDeserializer: Error converting to type: String was not recognized as a valid DateTime.

关于如何纠正这个问题的任何想法?

这是我传递的 URL 编码的 DateTime 示例:2%2f24%2f2012+5%3a13%3a02+PM

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc servicestack


    【解决方案1】:

    如果您必须将日期时间作为字符串传递,请尝试以明确的格式传递它们。我假设您即将通过 2012 年 2 月 24 日 17:13:02 - 类似以下内容将是明确的:

    2012-02-24T17:13:02
    

    例如如果你是formatting .NET 中的日期,请使用“o”或“s”


    这与 URL 编码无关 - 它与明确传递数据有关 - 诸如 01/02/2012 之类的日期至少可以解释两种方式 - 2 月 1 日或 1 月 2 日一年,两年。

    【讨论】:

    • 这听起来像是一个很好的解决方案,但是当它是 url 编码时,我仍然无法解析 2012-02-24T17:13:02 的有效日期
    【解决方案2】:

    您是否考虑过让 websservice 接受字符串参数,然后使用 DateTime.Parse 或 DateTime.TryParse 将字符串转换为 DateTime?

    【讨论】:

      猜你喜欢
      • 2017-10-17
      • 2021-01-09
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多