[英]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.