为什么我的javascript数组没有通过ASP.NET正确注册?
我正在使用以下代码:为什么我的javascript数组没有通过ASP.NET正确注册?,javascript,asp.net,arrays,Javascript,Asp.net,Arrays,我正在使用以下代码: for (int i = 0; i < 147; i++) { if (!(array[i].Equals(""))) { Page.ClientScript.RegisterArrayDeclaration("Stringarray", array[i]); } else { break; } } 我在文件的设计和脚本部分进行赋值,我不想在另一个页面上使用它,我可以理解这
for (int i = 0; i < 147; i++)
{
if (!(array[i].Equals("")))
{
Page.ClientScript.RegisterArrayDeclaration("Stringarray", array[i]);
}
else
{
break;
}
}
我在文件的设计和脚本部分进行赋值,我不想在另一个页面上使用它,我可以理解这可能会失败。这个函数在过去是有效的,所以我不确定是什么原因导致数组没有正确注册,也许我遗漏了一些东西,因为我的代码中所有与我想要注册的数组相关的东西,除了在变量数组上创建它的事实,我已经检查过它是否正确注册,所以这不应该是个问题
我也在代码中设置了这一点:
<asp:HiddenField ID="Stringarray" runat="server"/ >
但是它不会改变代码中的任何内容。首先必须构建一个包含数组元素的字符串,例如:
string[] array = new[] {"a", "b", "", "c"};
string arrayAsString =
"\""
+ string.Join("\", \"", array.Where(s=>!string.IsNullOrEmpty(s)).ToArray())
+ "\"";
这将创建一个字符串,如:a、b、c
然后,可以使用该值调用RegisterArrayDeclaration:
ClientScript.RegisterArrayDeclaration("Stringarray", arrayAsString);
希望这对你有帮助。
ClientScript.RegisterArrayDeclaration("Stringarray", arrayAsString);