2013-10-05 64 views
1

Index.aspx页,我用一个超链接,并传递给ShowIndexRegular.aspx 2个变量:关键和标志超链接NavigateUrl的正确的语法

{ 
    ........ 
    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"; 
      } 

     } 

当我点击Hyperlink1在Index.aspx,即使当地址栏显示:http://localhost:41148/website/ShowIndexRegular.aspx?key=3,flag=0

result is always "0",这意味着该标志为空。我真的不知道为什么,地址栏显示:key=3,flag=0.

我的超链接NavigateURL语法有什么错误? 帮助!!!

回答

3

查询字符串不通过逗号分隔键/值对:相反

ShowIndexRegular.aspx?key={0},flag={1} 

,他们通过符号分隔键/值对:

ShowIndexRegular.aspx?key={0}&flag={1} 
+0

谢谢,它的作品^^ –

1

见下文。

HyperLink1.NavigateUrl = string.Format("ShowIndexRegular.aspx?key={0}&flag={1}",key,flag); 

您试图使用错误的格式构建查询字符串。用上面的代码替换你的代码,你会没事的。

0

这不是通过正确的方式多对QueryString,您只需使用“&”而不是“,”如下所示:

{ ........ string key =“3”; string flag =“0”; HyperLink1.NavigateUrl = string.Format(“ShowIndexRegular.aspx?key = {0} & flag = {1}”,key,flag);

}