在Index.aspx
页面中,我使用超链接并传递给ShowIndexRegular.aspx
2个变量:key和flag
{
........
string key="3";
string flag="0";
HyperLink1.NavigateUrl = string.Format("ShowIndexRegular.aspx?key={0},flag={1}",key,flag);
}
在ShowIndexRegular.aspx
:
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["flag"]!=null)
{
string key="";
string flag = "";
string result="";
flag = Request.QueryString["flag"].ToString();
if (flag.Equals(0))
{
key = Request.QueryString["key"].ToString();
}
else if (flag.Equals("1"))
{
....
}
result="1";
}
else
{
result="0";
}
}
当我点击Index.aspx
中的超链接1时,即使地址栏显示:http://localhost:41148/website/ShowIndexRegular.aspx?key=3,flag=0
result is always "0"
,表示该标志为空。我真的不知道为什么,地址栏显示:key=3,flag=0.
我的Hyperlink NavigateURL语法是否有任何错误? 帮助!
答案 0 :(得分:3)
查询字符串不会用逗号分隔键/值对:
ShowIndexRegular.aspx?key={0},flag={1}
相反,它们通过&符分隔键/值对:
ShowIndexRegular.aspx?key={0}&flag={1}
答案 1 :(得分:1)
见下文。
HyperLink1.NavigateUrl = string.Format("ShowIndexRegular.aspx?key={0}&flag={1}",key,flag);
您尝试使用错误的格式构建查询字符串。用我上面的代码替换你的代码,你会没事的。
答案 2 :(得分:0)
这不是传递多对QueryString的正确方法,您只需要使用“&”而不是“,”如下所示:
{ ........ string key =“3”; string flag =“0”; HyperLink1.NavigateUrl = string.Format(“ShowIndexRegular.aspx?key = {0}& flag = {1}”,key,flag);
}