众所周知,web开发中跳转无处不在,jsp中的跳转有客户端的跳转和服务器端的跳转。asp.net也不例外,但是asp.net的更为丰富,主要是下面几种
HyperLink控件
1. Asp.net 服务器端控件 属性NavigateUrl指定要跳转到的Url地址
2. NavigateUrl是可以在服务器端使用代码修改,这个区别于<a>
3. 由于HyperLink本身没有事件所以要在服务器端其它事件中设置NavigateUrl
4. 代码示例:
<Asp:HyperLink id=”hyperlink” runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>
Response.Redirect()方法
1. 过程:发送一个Http响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。
2. 页面跳转之后内部控件保存的所有信息丢失,当A跳转到B,B页面将不能访问A页面提交的数据信息。
3. 使用这个方法使用这个方法跳转后浏览器地址栏的Url信息改变
4. 可以使用Session Cookies Application等对象进行页面间的数据传递
5. 重定向操作发生在客户端,总共涉及到两次与Web服务器的通信:一次是对原始页面的请求,另一次是重定向新页面的请求
Server.Transfer()方法
1. 实现页面跳转的同时将页面的控制权进行移交
2. 页面跳转过程中Request Session等保存的信息不变,跳转之后可以使用上一个页面提交的数据
3. 跳转之后浏览器地址栏的Url不变
4. 这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转
Server.Execute()方法
1. 该方法允许当前页面执行同一个Web服务器上的另一个页面
2. 页面执行完毕之后重新回到原始页面发出Server.Execute()的位置。
3. 这种方式类似针对页面的一次函数调用 被请求的页面可以使用原始页面的表单数据和查询字符串集合
4. 被调用页面的Page指令的EnableViewStateMac属性设置为False
表单页面就不贴出来了,下面看下一般处理程序
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace redirect.servlet
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
//取得用户名和密码
string password = context.Request["password"];
string name = context.Request["name"];
if (password.Equals("123456") && name.Equals("tom"))
{
context.Server.Transfer("/manage/success.aspx");
}
else {
context.Response.Redirect("/manage/failure.aspx");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
做的过程中,个人总结了一下,如果要跳转到aspx页面,最好不要使用redirect,html这种静态页面就随便使用哪种都可以。
分享到:
相关推荐
本文详细介绍asp.net跳转页面的三种方法比较
自己写的asp.net跳转,本人学的死java,有写的不对的地方请大家拍砖。
ASP.NET页面跳转的几种方法
ASP三种跳转页面比较,这里给你详细讲解
asp.net网页跳转七种方法小结 开发技术
浅析asp.net页面跳转,希望对大家有帮助:)
asp.net登陆自动跳转代码实例 asp.net登陆自动跳转代码实例
asp.net 异常处理跳转自定义404,500页面Demo实现,想要学习的可以看看,通过Application_Error 中拦截异常
asp.net在新窗口打开网页 Response.Rederect在默认情况下是在本页跳转,所以除了在js中用window.open 或是给A标签添加target属性之外,在后台似乎不能来打开新的页面,其实不然,通过设置form的target属性同样可以让...
①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到... ASP.NET] 代码如下: using System; using System.Web.UI
总结 c# 编程中 ASP.NET(c#) 网页跳转的七种方法 实用
这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但它可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是...
把控件RadioButtonList,DropDownList,TextBox做成带参数(';...%>')的控件传递给下一页面 实现跳转,根据第一个页面不同选择或填写的值来改变第二个页面对应的操作,仅供参考,适合菜鸟初学者学习
asp.net iframe框架跳转以及定时轮询,子页面将新窗口打开到父窗体指定的iframe框架中,以及http_request轮询方法!时间匆忙只简单的写了简单应用。有时间在完善,希望能帮助到需要的朋友!
1.1 ASP.NET 2.0 是什么 1 1.2 第一个ASP.NET 2.0网站 2 1.2.1 创建网站 2 1.2.2 设计网站 3 1.2.3 通过预编译发布网站 5 1.3 ASP.NET 2.0必须具备的HTML知识 7 1.3.1 利用表单提交数据 8 1.3.2 使用表格进行布局 9 ...
asp.net mvc文本文件创建更新,为了方便,我就不解释了,而且也不独立出来了
一个页面登陆的.NET的程序,所用知识点:页面跳转、传值 需要注册后才能登陆
关闭页面时清空Session (ASP.net ) (已实现)