2010-09-23 166 views
3

我正在使用Querystring将值从一个页面传递给其他页面。我打算使用Server.UrlDecode和urlEncode来实现编码和解码。Asp.Net查询字符串

查询字符串返回空值,但我可以检查已在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空值。

任何帮助,请..

回答

5

改变这一行:

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

那是因为你的查询字符串应该是这样

MyPage.aspx?id=xxx&name=yyy 

你是不是传递值,只有人名......

+0

非常感谢。它被排序 – 2010-09-23 11:46:14

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)); 
1

您未指定值的名称。您需要:

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

当在第一页构造URL,你应该这样做:

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

查询字符串由键值对,你应该提供的钥匙。

3

现在你只设置在查询字符串值,则需要将它们分配名称,以便您可以再次抓住他们:

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

谢谢..排序 – 2010-09-23 11:41:35