一、利用HyperLink服务器控件实现从一个页面跳转到另一个页面
1、在ASP中常使用“跳转到页面2”方式实现页面跳转的功能,在ASP.NET中仍可使用此方法,另外还可以使用HyperLink服务器控件代替,HTML代码如下:
2、利用HyperLink服务器控件的NavigateUrl属性用于指定要跳转页面的URL地址。上述HTML代码的运行结果和前一种方法相同,但两者有一点重要的区别,HyperLink服务器控件可以在服务器端编程引用和改变NavigateUrl属性的值,从而允许跳转的目标页面可以根据当前状态变化,使用起来显得更灵活。
需要注意的是:由于该服务器控件本身没有事件,因此只能在其他事件中设置Navigate属性,在Page_Load事件设定的情况比较多。
下面代码可以实现当用户点击HyperLink控件时跳转到WebForm2.aspx页面:
Private void Page_Load(object sender,System.EventArgs
e)
{
HyperLink.NavigateUrl= “ WebForm2.aspx “;
}
二、利用Server.Transfer方法实现从一个页面跳转到另一个页面
Server.Transfer方法在实现页面跳转的同时将页面的控制权进行移交。在页面跳转的过程中Request、Session等保存的信息不变,页面A跳转到页面B后可以继续使用页面A中提交的数据信息。使用此方法由页面A跳转到页面B后,浏览器的地址栏仍保持页面A的URL信息。Server.Transfer方法的重定向请求是在服务器端进行,浏览器不知道服务器已经执行了一次页面变换,因此浏览器的地址栏仍保持不变。
Server.Transfer方法的使用代码如下。
在WebForm1.aspx文件
Server.Transfer("WebForm2.aspx? id= AA &name= BB
");
在WebForm2.aspx文件
string id=Request.Params["id"];
string
name=Request.Params["name"];
Response.Write(id+"
"+name);
三、利用Server.Execute方法实现从一个页面跳转到另一个页面
Server.Execute方法允许当前页面执行同一Web服务器上的另一个页面,当另一页面执行完毕后,控制流程重新返回到原页面发出Server.Execute调用的位置。这种方式类似于针对页面的一次函数调用,被调用的页面能够访问原页面的表单数据和查询字符串集合,所以需要把被调用页面Page指令的EnabledViewStateMac属性设置为False。
在WebForm1.aspx文件
Server.Execute("WebForm2.aspx? id= AA &name= BB
");
在WebForm2.aspx文件
string id=Request.Params["id"];
string
name=Request.Params["name"];
Response.Write(id+"
"+name);
四、利用Response.Redirect方法实现从一个页面跳转到另一个页面
Response.Redirect方法首先发送一个HTTP响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。在页面跳转后内部控件保存的所有数据信息将丢失,因此当页面A跳转到页面B,页面B将无法访问页面A中提交的数据信息。使用此方法跳转页面后浏览器地址栏的URL信息改变,但是可以通过Session、Cookies、Application等对象进行页面间的数据传递。使用Response.Redirect方法时,重定向操作发生在客户端,总共会涉及到两次与Web服务器的通信(两次往返),第一次是原始页面的请求,第二次是重定向新页面的请求。
Response.Redirect方法的使用代码如下。
Response.Redirect(“MAIN.ASPX”);//将客户端重定向到新的URL并终止当前页面
五、页面跳转方式的选择
(1)应用HyperLink服务器控件的情况:
1、需要由用户来决定何时转换页面;2、需要用程序来控制转换的目标、但转换的时机由用户决定。
(2)应用Response.Redirect方法的情况
1、需要把用户连接到另一台服务器的页面;2、需要把用户连接到非ASPX类型的页面,例如HTML页面;
3、需要将查询字符串作为URL的一部分保留。
(3)应用Server.Transfer方法的情况
如果需要将执行流程转入同一Web服务器的另一个ASPX页面,应当使用Server.Transfer方法,而不是使用
Response.Redirect方法,因为Server.Transfer能够避免不必要的网络通信,从而获得更好的性能和浏览效果。
(4)应用Server.Execute方法的情况
需要将一个ASPX页面的输出结果插入另一个ASPX页面中。
注意:为确保HTML输出的合法性,最好使用Response.Redirect方法,不要使用Server.Transfer和Server.Execute方法。因为有些情况下使用这两种方法返回给客户端的页面包含多个等标记,不是合法的HTML页面。如果用户用的是非IE浏览器可能会产生错误。
阅读(2019) | 评论(1) | 转发(0) |