我使用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中得到空值。
任何帮助请...
答案 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));
查询字符串由键值对组成,您应该提供键。