为什么我的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);