将C#ASP.NET数组传递给Javascript数组
有谁知道如何将C#ASP.NET数组传递给JavaScript数组?示例代码也将很好。
抱歉,如果我以前的人含糊不清。这个问题实际上很简单。为了简单起见,我在aspx.cs
文件中声明:
int [] numbers = new int[5];
现在,我想传递numbers
给客户端,并在JavaScript中使用数组中的数据。我该怎么做?
回答:
您可以使用ClientScript.RegisterStartUpScript将javascript注入Page_Load的页面中。
这是MSDN参考的链接:http :
//msdn.microsoft.com/zh-
cn/library/asz8zsxy.aspx
这是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#注入Java脚本是一种干扰
我们必须在全局上下文中声明数组
如果不能接受,另一种方法是让C#代码将数组保存到View
State,然后让JavaScript使用PageMethods(或Web服务)回调到服务器以将该View
State对象作为数组。但是我认为对于这样的事情可能会过大。
以上是 将C#ASP.NET数组传递给Javascript数组 的全部内容, 来源链接: utcz.com/qa/397543.html