日期时间的asp.net中的Javascript序列化是不是给一个javascript日期对象? [英] Javascript serialization of DateTime in asp.net is not giving a javascript date object?
本文介绍了日期时间的asp.net中的Javascript序列化是不是给一个javascript日期对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我解析一个DateTime到JSON在.net它返回一个字符串(即\\ /日期(1249335194272)\\ /
)。我如何让它回到一个js Date对象的构造函数在一个字符串不换?
// JS服务器code
变种dteNow = LT;%= jsonDateNow%取代;
// JS渲染code
VAR dteNow =\\ /日期(1249335477787)\\ /;
// C#
使用系统;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.Script.Serialization;
使用System.Web.UI.WebControls;命名空间测试{
公共部分类iTax preP:System.Web.UI.Page
{
保护字符串jsonDateNow;
保护无效的Page_Load(对象发件人,EventArgs的发送)
{
如果(!的IsPostBack)
{
jsonDateNow =新的JavaScriptSerializer()序列化(DateTime.Now)。 }
}
}
}
解决方案
这似乎工作(感谢克里斯S为理念)。在C#中做一个替换对来自各地的日期对象中删除该字符串包装;
使用System.Collections.Generic;
使用System.Linq的;
使用的System.Web;
使用System.Web.UI程序;
使用System.Web.Script.Serialization;
使用System.Web.Script.Services;
使用System.Web.Services;
使用System.Web.UI.WebControls; 命名空间试验
{
[ScriptService]
公共部分类测试:System.Web.UI.Page
{
保护字符串strCaseID;
保护字符串jsonCase; 保护无效的Page_Load(对象发件人,EventArgs的发送)
{
如果(!的IsPostBack)
{
strCaseID = Tools.GetQueryObject(ID);
//得到的日期,字符串数组等复杂的对象
jsonESHACase =新的JavaScriptSerializer()。序列化(objCase.Get(strCaseID))
.Replace(\\\\\\ /日期(,新日期()\\\\ / \\,))替换();
}
}
}
}
..和删除引号并添加新的preFIX迄今为止这个js现在工作了。万岁!
的TestCase =<%= jsonESHACase%取代;
如果(测试用例){
的document.write(测试用例[ClosingDate]格式(MM DD YYYY));
}
When I parse a DateTime to json in .Net it returns a string (i.e. "\/Date(1249335194272)\/"
). How do I make it return a js Date object constructor not wrap in a string?
// js server code
var dteNow = <%= jsonDateNow %>;
// js rendered code
var dteNow = "\/Date(1249335477787)\/";
// C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Script.Serialization;
using System.Web.UI.WebControls;
namespace testing{
public partial class iTaxPrep : System.Web.UI.Page
{
protected string jsonDateNow;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
jsonDateNow = new JavaScriptSerializer().Serialize(DateTime.Now);
}
}
}
}
解决方案
This seems to work (Thanks Chris S for the idea). In the C# do a replace to remove the string wrapper from around the date object;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
using System.Web.Services;
using System.Web.UI.WebControls;
namespace test
{
[ScriptService]
public partial class testing: System.Web.UI.Page
{
protected string strCaseID;
protected string jsonCase;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
strCaseID =Tools.GetQueryObject("id");
// get a complex object with dates, string, arrays etc.
jsonESHACase = new JavaScriptSerializer().Serialize(objCase.Get(strCaseID ))
.Replace("\"\\/Date(", "new Date(").Replace(")\\/\"", ")");
}
}
}
}
..and after removing the quotes and adding the new prefix to Date this js now works. Hooray!
testCase= <%= jsonESHACase %>;
if (testCase) {
document.write(testCase["ClosingDate"].format("MM dd yyyy"));
}
这篇关于日期时间的asp.net中的Javascript序列化是不是给一个javascript日期对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文