Request.QueryString用于读取Passed数组

时间:2011-06-09 11:23:53

标签: c# asp.net arrays parameter-passing

我无法通过Request.Querystring

读取从其他页面传递的数组
//Label1.Text += FID[l]; //Checked the array and it is printing properly.

Response.Redirect("show.aspx?id=" + ID + "&name=" + NAME + "&fileid=" 
                  +FID+"&length="+j);


string fid=string.Empty;
if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["fileid"].ToString())))
{
    fid = Request.QueryString["fileid"].ToString();

}

for (int l = 0; l < length; l++)
{

    Label1.Text += fid[l]; //Printing wrong array
}

任何人都可以帮助我。

如何使用 Global.aspx 文件来执行此操作而不是参数传递。

1 个答案:

答案 0 :(得分:1)

你的代码毫无意义,首先如果代码全部采用相同的方法,那么在Response.Redirect运行之后就没有了。

第二个假设Response.Redirect与其他代码的方法不同,那么

if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString["fileid"].ToString())))

在上面一行中,您在已经是字符串的东西上调用ToString(),然后将其转换为字符串。如果Request.QueryString [“fileid”]为null,那么这将抛出一个空引用异常。你应该这样做:

if (!string.IsNullOrEmpty(Request.QueryString["fileid"]))

第三个fid是一个字符串,Label1.Text是一个字符串。为什么要通过char循环遍历字符串char,然后将它们添加到结束Label1.Text。

最后fid将包含作为查询字符串param“fileid”传递的任何内容,它不能包含任何其他内容。如果它具有“错误”值,则在查询字符串中传递“错误”值。