无法将数组正确传递到asp.net C#中的其他页面
本文关键字:net 其他 asp 数组 | 更新日期: 2023-09-27 17:58:42
//FID is an array
Response.Redirect("show.aspx?id=" + ID + "&name=" + NAME + "&fileid=" + FID+"&length="+j);
//In show.aspx
Label1.Text = Request.QueryString["fileid"].ToString();
我得到的标签文本为System.String[]
我建议您不要在查询字符串中传递array
作为参数,而是将其放入Session变量中。
如果你真的想传入一个数组,那么你可以让它成为comma separated string
,然后传入,然后在第二页split
上,字符串
编辑:查看上面的链接,下面是您的操作方法。。
Session["fileid"] = FID; // set in session in first page
//Accessing on Second page
String[] FID;
FID = (String[])Session["FID"];
假设FID是一个数组,如果您想给它第一个值,那么您必须执行以下操作:
Response.Redirect("show.aspx?id=" + ID + "&name=" + NAME + "&fileid=" + (FID.Length == 1 ? FID[0]: "") +"&length="+j);
在我的例子中,如果FID的值大于或小于1,它将发送一个空字符串,您必须根据您的要求在那里创建自己的验证
如果有超过1个值,并且您希望传递所有值,则必须创建循环逻辑,但从您的示例来看,它似乎只包含1个值
根据@Muhammad Akhtar使用Session
可能会更好。
但是,如果您绝对需要在查询字符串中传递数组,则可以使用String.Join()
将数组元素连接在一起——您只需要选择一个合适的分隔符。