2009-09-27 113 views
1

我想使用QueryString将字符串发送到另一个名为Reply.aspx的页面。使用ASP.NET通过QueryString发送数据

我写的第一页上,该代码必须将文本发送到Reply.aspx:

protected void FReplybtn_Click(object sender, EventArgs e) 
{ 
    String s = "Reply.aspx?"; 
    s += "Subject=" + FSubjectlbl.Text.ToString(); 
    Response.Redirect(s); 
} 

我写了Reply.aspx页面上此代码:

RSubjectlbl.Text += Request.QueryString["Subject"]; 

但这种方法ISN不能正常工作,并且不显示文本。

我应该怎么做才能解决这个问题?

感谢

+0

代码应该工作...哪部分出了问题?重定向是否正确发生? – ullmark 2009-09-27 16:30:18

+0

是的,这是真的! – 2009-09-27 16:30:46

+0

它显示任何东西吗?你可以对它进行编码,使其成为一个有效的查询字符串。或者如果它在同一个站点上,你可以将它缓存在会话对象中。 – 2009-09-27 16:31:58

回答

0

这很简单:

第一页:

string s = "~/ADMIN/Reply.aspx?"; 
s += "Subject=" + FSubjectlbl.Text; 
Response.Redirect(s); 

第二页:

RSubjectlbl.Text = Request.QueryString["Subject"]; 
0

虽然你的代码应该可以正常工作,即使源字符串中有空格等,当你访问查询字符串应该返回的东西,也请试试这个:

protected void FReplybtn_Click(object sender, EventArgs e) 
{ 
    String s = Page.ResolveClientUrl("~/ADMIN/Reply.aspx"); 
    s += "?Subject=" + Server.UrlEncode(FSubjectlbl.Text.ToString()); 
    Response.Redirect(s); 
} 

编辑: -

void Page_Load(object sender, EventArgs e) 
{ 
    if(Request.QueryString.HasKeys()) 
    { 
     if(!string.IsNullOrEmpty(Request.QueryString["Subject"])) 
     { 
      RSubjectlbl.Text += Server.UrlDecode(Request.QueryString["Subject"]); 
     } 
    } 
} 

PS: - Server.UrlEncode也会在这个问题的评论中被取消。