尝试将数组变量从asp传递到javascript

问题描述 投票:0回答:1

我正在尝试将数组变量传递给 javascript。
以下不起作用,知道为什么以及如何使其起作用吗?

背后代码

Public myArray (5) As String
myArray(1) = "A1"
myArray(2) = "A2"
myArray(3) = "A3"
myArray(4) = "A4"
myArray(5) = "A5"

在asp.net中

<button type = "button" onclick="myJava('<%= myArray %>');">Search</button>

在 JavaScript 中

function myJava (myArray) {
   alert(myArray[1]); // expected answer is A1 but it is "y"
}

alert(myArray)
结果为
System.String[]

javascript html asp.net
1个回答
0
投票

您需要正确编码您的数组。首先,需要将其转换为JSON字符串;那么您需要将该字符串编码为 HTML 属性值。

添加对 Newtonsoft.Json

 NuGet 包
的引用。为 Imports
 命名空间添加 
Newtonsoft.Json
 语句。在代码隐藏中添加一个方法以返回正确编码的函数调用:

Public Function PassArrayToJavascript(ByVal functionName As String) As String Dim json As String = JsonConvert.SerializeObject(myArray) Dim result As String = functionName + "(" + json + ");" Return System.Web.HttpUtility.HtmlAttributeEncode(result) End Function
然后更新您的标记以调用此函数:

<button type = "button" onclick="<%= PassArrayToJavascript("myFunction") %>">Search</button>
    
© www.soinside.com 2019 - 2024. All rights reserved.