簡體   English   中英

將C#數組傳遞給Javascript

[英]Pass C# Array To Javascript

將C#數組傳遞給javascript變量的最佳方法是什么?

我有示例代碼,但是這個返回字符來自C#數組,我希望以正常方式返回,就像javascript數組中的逐字一樣;

C#代碼背后:

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

javascript代碼:

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

此腳本返回單個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所說,不要在它周圍加上引號,所以你不必解析它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM