【问题标题】:How to correctly return .NET dates from ASP.NET MVC to Javascript/JQuery如何正确地将 .NET 日期从 ASP.NET MVC 返回到 Javascript/JQuery
【发布时间】:2013-07-02 10:56:32
【问题描述】:

我发现了一百万篇关于将 .NET 日期序列化为 json 的帖子。 然而,我无法让其中任何一个正常工作。

到目前为止,这是我的序列化代码:

string javascriptJson = JsonConvert.SerializeObject(result, 
   new JavaScriptDateTimeConverter());
return Content(javascriptJson, "application/json");

这会返回一个包含正确 JSON 的未转义字符串,并且在浏览器中查看时看起来完全正确。 (例如,日期看起来像: date: new Date(023198928) 就我有限的 javascript 技能而言,它应该是这样的)

但是,我无法让 JQuery 理解这一点,要么我得到一个普通的 javascript 字符串,要么它根本失败,我想要反序列化的对象。

我已经尝试过 $.get 和 $.getJSON

想法?

【问题讨论】:

    标签: jquery asp.net-mvc json json.net


    【解决方案1】:

    这些不是您要寻找的方法...

    jQuery.get():
    检索与 jQuery 对象匹配的 DOM 元素之一。

    jQuery.getJSON()
    使用 GET HTTP 请求从服务器加载 JSON 编码的数据。

    改用jQuery.parseJSON()
    采用格式良好的 JSON 字符串并返回结果 JavaScript 对象。

    【讨论】:

    • 试过 jQuery.parseJSON() 但它抛出并抱怨意外的令牌,但是 var res = eval(data);正常工作
    • 纯 JavaScript eval() - 不错!看来我只见树木不见森林。再一次......不过,parseJSON() 失败了,这很奇怪。如果你有时间,你应该找出原因 - 并在这里发布以满足我的好奇心;-)
    【解决方案2】:

    事实证明,即使我的服务的响应是有效的 javascript,它也不是有效的 Json。

    您不能返回“{ date : new Date(24342) }”,因为我猜它会打开脚本注入。 我恢复到标准的 .NET Json 序列化程序并简单地解析了它返回的“\Date(343)\”..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-29
      • 2019-01-03
      • 2012-03-02
      • 2010-09-27
      • 2015-02-05
      • 1970-01-01
      相关资源
      最近更新 更多