gpt4 book ai didi

c# - 有没有办法从 asp .net web 方法而不是 JSON 格式返回 ISO 格式的 DateTime?

转载 作者:太空狗 更新时间:2023-10-29 23:53:25 29 4
gpt4 key购买 nike

目前,web 方法或经典 asp .net 中的大多数方法使用 system.web.script.serialization.javascriptserializer 类进行序列化,这会返回 javascript 对象的 datetime 成员,其值如

"/Date(number of ticks)/"

.我知道这是一个臭名昭著的问题,大多数人建议在我们收到数据后使用某种转换器或将数据作为字符串而不是对象返回。

例如类

public class Person
{
public String Name { get; set; }
public int Age { get; set; }
public DateTime DOB { get; set; }
}

如果通过带有 [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 修饰的 System.Web.Services.WebMethod 返回,则响应将在 result.d 中返回,如下所示

{Name:"Steve", Age:30, DOB:"/Date(1249335477787)/"};

我们需要应用一些代码将 DOB 转换为 ISO 格式或其他可接受的格式。

但我只是想看看是否有人进行了某种响应调整或使用覆盖类从 Web 方法返回 DateTime 值。有没有办法覆盖 javascriptserializer 的功能并在 asp .net web 方法中使用它,以便它直接以 ISO 格式返回日期?我知道它可以通过几种方式在 asp .net MVC 中完成。

是否可以在 asp .net web 表单的 web 方法中完成同样的操作?这也将节省大量代码和错误:)

最佳答案

我从 http://blog.icanmakethiswork.io/2012/04/beg-steal-or-borrow-decent-javascript.html 中找到了一个技巧.

这是为了替换 JsonSerializer 自己的日期序列化器并使用自定义日期序列化器。

  • 覆盖 System.Web.Script.Serialization.JavaScriptConverter
  • 更新 web.config 部分以将其应用于整个项目或使用 RegisterConverters 函数在本地使用它

这能够返回一个 ISO 格式的日期时间,我也能够传递这个内部 moment js 以在 javascript 中进行操作。

关于c# - 有没有办法从 asp .net web 方法而不是 JSON 格式返回 ISO 格式的 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32563186/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com