无法将数组正确传递到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[]

无法将数组正确传递到asp.net C#中的其他页面

我建议您不要在查询字符串中传递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个值

这是因为字符串[]的ToString((方法是"System.string[]"!您需要提供一些打印机来打印数组的内容。

根据@Muhammad Akhtar使用Session可能会更好。

但是,如果您绝对需要在查询字符串中传递数组,则可以使用String.Join()将数组元素连接在一起——您只需要选择一个合适的分隔符。