Hyperlink NavigateUrl的正确语法

时间:2013-10-05 12:18:32

标签: c# asp.net

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语法是否有任何错误? 帮助!

3 个答案:

答案 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);

}