有谁知道如何将C#ASP.NET数组传递给JavaScript数组?示例代码也将很好。
对不起,如果我以前的人含糊不清。这个问题实际上很简单。为了简单起见,我在aspx.cs文件中声明:
aspx.cs
int [] numbers = new int[5];
现在,我想传递numbers给客户端,并在JavaScript中使用数组中的数据。我该怎么做?
numbers
您可以使用ClientScript.RegisterStartUpScript将javascript注入Page_Load的页面中。
这是Page_Load中的代码:
List<string> tempString = new List<string>(); tempString.Add("Hello"); tempString.Add("World"); StringBuilder sb = new StringBuilder(); sb.Append("<script>"); sb.Append("var testArray = new Array;"); foreach(string str in tempString) { sb.Append("testArray.push('" + str + "');"); } sb.Append("</script>"); ClientScript.RegisterStartupScript(this.GetType(), "TestArrayScript", sb.ToString());
注意:使用StringBuilder生成脚本字符串可能会很长。
这是可在使用注入的数组之前对其进行检查的Javascript:
if (testArray) { // do something with testArray }
这里有两个问题:
有人认为这对C#注入Javascript具有干扰性
我们必须在全局上下文中声明数组
如果不能接受,另一种方法是让C#代码将数组保存到ViewState,然后让JavaScript使用PageMethods(或Web服务)回调到服务器以将该ViewState对象作为数组。但是我认为对于这样的事情可能会过大。