日期:2014-05-18  浏览次数:20478 次

求指导,关于页面回发时改变server.urlencode("中文的内容"),怎么办?
测试default.aspx button1.click事件response.redirect("default2.aspx?a=" + server.urlencode("中文"));
default2.aspx只有一个button1,事件是空的,当第一个页面点BUTTON1后,default2.aspx的地址是一个值,而单击页面中的BUTTON后,地址栏的内容改变了?

------解决方案--------------------

你在Default2.aspx页面首次加载的时候,获取到传递过来的参数,然后保存在ViewState中即可,这样无论你怎么操作该页面,都是可以通过ViewState来访问刚才从Default1.aspx页面中传递过来的值的。

public void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
ViewState["args"] = Server.UrlDecode(Request.QueryString["a"].Trim());
}
}

public void Button1_Click(object sender,EventArgs e)
{
Response.Write("<script>alert('"+ViewState["args"].ToString()+"');</script>");
}

------解决方案--------------------
LZ可以在pageload事件里面加一个
if(!IsPostBack)
{

}
来确认是否有回发
------解决方案--------------------
你点击 又向服务器请求一次,自动URL就给你改变了。
------解决方案--------------------
探讨
测试default.aspx button1.click事件response.redirect("default2.aspx?a=" + server.urlencode("中文"));
default2.aspx只有一个button1,事件是空的,当第一个页面点BUTTON1后,default2.aspx的地址是一个值,而单击页面中的BUTTON后,地址栏的内容改变了?