使用ASP.NET通过QueryString发送数据
问题描述:
我想使用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不能正常工作,并且不显示文本。
我应该怎么做才能解决这个问题?
感谢
答
这很简单:
第一页:
string s = "~/ADMIN/Reply.aspx?";
s += "Subject=" + FSubjectlbl.Text;
Response.Redirect(s);
第二页:
RSubjectlbl.Text = Request.QueryString["Subject"];
答
虽然你的代码应该可以正常工作,即使源字符串中有空格等,当你访问查询字符串应该返回的东西,也请试试这个:
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也会在这个问题的评论中被取消。
代码应该工作...哪部分出了问题?重定向是否正确发生? – ullmark 2009-09-27 16:30:18
是的,这是真的! – 2009-09-27 16:30:46
它显示任何东西吗?你可以对它进行编码,使其成为一个有效的查询字符串。或者如果它在同一个站点上,你可以将它缓存在会话对象中。 – 2009-09-27 16:31:58