为什么我的javascript数组没有通过ASP.NET正确注册?

时间:2014-11-20 12:48:21

标签: javascript asp.net arrays

我正在使用以下代码:

for (int i = 0; i < 147; i++)
{
     if (!(array[i].Equals("")))
     {
        Page.ClientScript.RegisterArrayDeclaration("Stringarray", array[i]);
     }
     else
     {
         break;
     }
}

代码正常执行但是如果我尝试在我的JavaScript文件中获取它,我得到的错误是当我执行此分配时未定义Stringarray

    var arlene2 = Stringarray;

我正在文件的设计和脚本部分进行分配,我不是试图在另一个页面上使用它,我可以理解可能会失败。这个函数已经过去了,所以我不确定是不是可能导致数组不能正常注册,也许我错过了一些东西,因为我的代码中的所有东西都与我要注册的数组有关,除了在变量数组上创建它的事实我已经检查过它已经完成了,所以它应该不是问题。

我也在代码中设置了这个:

<asp:HiddenField ID="Stringarray"  runat="server"/ > 

但它不会改变代码上的任何内容。

1 个答案:

答案 0 :(得分:0)

首先必须构建一个包含数组元素的字符串,例如:

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);