我正在使用以下代码:
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"/ >
但它不会改变代码上的任何内容。
答案 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);