我可以尝试将一些代码从C#序列化为JavaScript,以便我可以在客户端使用它。但是,当我执行此操作时,它会提取[object Object],[object Object],[object Object]
,但是如果我传递一个正常的字符串"Hello"
,则它可以正常工作,因此序列化似乎不是问题所在。
所以我的C#代码如下:
protected void Page_Load(object sender, EventArgs e)
{
List<YearMonthGrid> ymgs = new List<YearMonthGrid>();
ymgs = DAL.GetYearMonthGrid("value");
var m = from c in ymgs where c.Month == 7 select c;
v1 = new JavaScriptSerializer().Serialize(m);
}
我的JS代码如下:
var d1 = <%=this.v1%>;
document.write(d1);
类YearMonthGrid
有三个我在列表中使用的属性:
当我调试它时,我的值v1
包含我想要返回的字符串,但是当我尝试获取它时,它只是反复向我显示Object
。有什么想法,为什么会这样?
答案 0 :(得分:0)
将对象转换为字符串(即将其写入页面)时,它将写出[object Object]
而不是对象的内容。相反,尝试做这样的事情:
var d1 = <%=this.v1%>;
for (var i = 0; i < d1.length; i++) {
var yearMonthGrid = d1[i];
document.write(yearMonthGrid.Name + '<br />');
document.write(yearMonthGrid.Quantity + '<br />');
document.write(yearMonthGrid.Month + '<br />');
}
如果您在Firefox或Chrome中运行此功能(我还没有在其他浏览器的较新版本中尝试过),那么您也可以执行此操作以查看每个对象的内容:
var d1 = <%=this.v1%>;
for (var i = 0; i < d1.length; i++) {
console.log(d1[i]);
}
确保您的JavaScript控制台已打开。