我有一个由JavaScript基于选中项创建的数组。一旦这个数组被创建(整数数组),我该如何将它传递给C#?是否更容易创建一个隐藏的文本框,只需将所有项添加到一个字符串中,在C#中再分割该字符串?例如,如果行1、3、7的复选框被选中,我的数组是{1,3,7}。同样,是否更容易在一个隐藏的文本框中获取字符串"1,3,7",然后从文本框中获取字符串?
这是将JS数组传递到代码后台文件的完全可接受的方法。
只需确保您有一个标记为runat="server"的输入控件,例如隐藏字段,并将控件的值设置为您的JS数组的.join(',')结果。您可能可以使用创建数组的javascript函数来完成此操作。
var hiddenField = $get("<%= hdnFieldControl.ClientID %>");
hiddenField.value = jsArray.join(',');
var serverSideArray = hdnFieldControl.value.Split(new char[0]{',');
关于这种方法,需要注意的是它会得到一个字符串数组。如果你真的想要一个整型数组,可以再进行一步转换:
int[] myInts = Array.ConvertAll(serverSideArray, int.Parse);
<input type-"checkbox" name="whatever" value="1" />
<input type-"checkbox" name="whatever" value="3" />
<input type-"checkbox" name="whatever" value="7" />
然后在你的代码中:
string values = Request.Form["whatever"]