Asp.Net查询字符串

时间:2010-09-23 11:33:32

标签: c# asp.net string encoding

我使用Querystring将值从一个页面传递给另一个页面。我想使用Server.UrlDecode和urlEncode来实现编码和解码。

查询字符串返回空值,但我可以检查值是否已在URL中发送。

这两页是:

QueryString.aspx

protected void Page_Load(object sender, EventArgs e)
{


}
protected void Button1_Click(object sender, EventArgs e)
{
    string id = "1";
    string name = "aaaa";

    string url = string.Format("QueryStringValuesTransfer.aspx?{0}&{1}", Server.UrlEncode(id), Server.UrlEncode(name));


    Response.Redirect(url);
}

;;

在另一页:

QueryStringValuesTransfer.aspx:

 public partial class QueryStringValuesTransfer : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id1 = Server.UrlDecode(Request.QueryString["id"]);
        string name1 = Server.UrlDecode(Request.QueryString["name"]);
        Response.Write(id1 + name1);

    }

}


我在id1和name1中得到空值。

任何帮助请...

6 个答案:

答案 0 :(得分:5)

更改此行:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));

答案 1 :(得分:3)

现在你只是在查询字符串中设置值,你需要为它们分配名称,以便你可以再次获取它们:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));

答案 2 :(得分:1)

那是因为您的查询字符串应该类似于

MyPage.aspx?id=xxx&name=yyy

您没有传递值,只传递名称......

答案 3 :(得分:1)

string url = string.Format("QueryStringValuesTransfer.aspx?{0}&{1}", Server.UrlEncode(id), Server.UrlEncode(name));

应该是:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));

答案 4 :(得分:1)

您没有指定值的名称。你需要:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name)); 

答案 5 :(得分:1)

在第一页中构建URL时,您应该这样做:

string url = string.Format("QueryStringValuesTransfer.aspx?id={0}&name={1}", Server.UrlEncode(id), Server.UrlEncode(name));

查询字符串由键值对组成,您应该提供键。