当前位置:  开发笔记 > 编程语言 > 正文

如何从C#方法返回JavaScript"本机"数组?

如何解决《如何从C#方法返回JavaScript"本机"数组?》经验,为你挑选了2个好方法。

我试图通过使用ActiveXObject以下方法从JavaScript调用C#方法:

var myobj = new ActiveXObject('myobject');
var arr = myobj.GetArray();

最终,arr将包含一个SAFEARRAY对象,但不包含JScript数组.有没有办法从C#方法返回本机JavaScript对象?



1> Russ Cam..:

您可以返回JSON字符串,然后解析为JavaScript对象.有许多.NET库可用于将.NET对象序列化为JSON,反之亦然 -

JSON.NET

Microsoft ASP.NET AJAX库

JSONSharp

仅举几例.

这个问题和答案可能对您有用



2> Pavel Podlip..:

我自己找到了解决方案,但这部分没有文档.解决方案是以JScript.ArrayObject下列方式使用:

ArrayObject _lastField;
byte[] byteArray = new byte[]{2,1,2,3};
object[] array = new object[byteArray.Length];
byteArray.CopyTo(array, 0);
_lastField = Microsoft.JScript.GlobalObject.Array.ConstructArray(array);

之后,您将能够_lastField像使用本机数组一样在JavaScript中使用该数组:

var myobj = new ActiveXObject('myobject');
var arr = myobj.LastField;
alert(arr[1]);


我会非常警惕这个.鉴于"JScript"和ActiveX,MS很可能会向您提出xbrowser问题.JSON方法将变得更灵活,更可靠.
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有