将C#数组传递给Javascript

将C#数组传递给javascript变量的最佳方法是什么?

我有示例代码,但是这个返回字符来自C#数组,我希望以正常方式返回,就像javascript数组中的逐字一样;

C#代码背后:

public string[] names = { "John", "Pesho", "Maria"}; public JavaScriptSerializer javaSerial = new JavaScriptSerializer(); 

javascript代码:

   var a = ''; for (var i = 0; i < a.length; i++) { console.log(a[i]); }  

此脚本返回单个char数组中“names”数组中的所有单词。 我想像[“John”] [“Pesho”]那样以正常的方式回归……

将C#数组传递给javascript的最佳方法是什么?

当我运行此代码时,我在Chrome浏览器的控制台中获得以下内容:

 [ Profile.aspx:44 " Profile.aspx:44 v Profile.aspx:44 a Profile.aspx:44 l Profile.aspx:44 e Profile.aspx:44 r Profile.aspx:44 i Profile.aspx:44 " Profile.aspx:44 , Profile.aspx:44 " Profile.aspx:44 p Profile.aspx:44 e Profile.aspx:44 s Profile.aspx:44 h Profile.aspx:44 o Profile.aspx:44 " Profile.aspx:44 , Profile.aspx:44 " Profile.aspx:44 m Profile.aspx:44 a Profile.aspx:44 r Profile.aspx:44 i Profile.aspx:44 a Profile.aspx:44 " Profile.aspx:44 ] 

更换

 var a = '<%= this.javaSerial.Serialize(this.names) %>'; 

 var a = <%= this.javaSerial.Serialize(this.names) %>; 

您将生成的JSON放入javascript字符串中,这将导致您的示例输出迭代遍历Serialize调用的每个字符。

你的c#代码将返回一个字符串,你必须首先使用JSON.parse解析字符串,然后遍历它:

 var a = JSON.parse('<%= this.javaSerial.Serialize(this.names) %>'); for (var i = 0; i < a.length; i++) { console.log(a[i]); } 

或者也许正如@Matthew所说,不要在它周围加上引号,所以你不必解析它。