response.redirect
redirect会让浏览器直接跳转到URL的网页,从原先的网页离开。
transfer不会让浏览器离开原先的网页,transfer语句之前的语句执行的为原网页的代码,transfer后面开始执行URL网页,如果触发URL控件实际上实在在URL网页上运作。
redirect很好理解不做过多解释
第一个界面
public partial class session_1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["UserName"] = "wdl";
string name = (string)Session["UserName"];
response.write(name);
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("Session_2.aspx");
}
}
第二个界面
public partial class Session_2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string name = (string)Session["UserName"];
Response.Write(name);
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("Session_1.aspx");
}
}
主要通过两个界面的转换来查看transfer方法
当从session_1界面运行
可以看到在session_1这个网页中,此时点击Button
发现还在session_1里面,但是出现了两个wdl,第一个wdl是session_1的结果,后面的wdl和botton是运行transfer后在session_2中,如果这个时候再次点击botton
来到了session_2,第一个wdl是session_2中的,后面的wdl和botton是运行transfer后session_1中的,如果这个时候点击botton会跳到session_1,同理在跳转后的界面中的后面wdl和botton是在session_2中。
所以transfer会将网页分成两部分,其中一部分是transfer上面是原网页内容,下面是URL内容。
以上是自己测试结果,可能存在问题