ASP.NET(C#)网页跳转七种方法详解

需积分: 50 6 下载量 17 浏览量 更新于2024-09-08 收藏 21KB DOCX 举报
ASP.NET(C#)网页跳转七种方法小结 在 ASP.NET 中,经常需要页面的跳转,下面是具体的七种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于 .NET 中 Response.Redirect、Server.Execute、Server.Transfer 三种页面跳转的方法。 Response.Redirect Response.Redirect 是一种最基本的跳转方法,它可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪)。但是,它的跳转速度不快,因为它要走 2 个来回(2 次 postback),同时不能跳过登录保护。但速度慢是其最大缺陷! Redirect 跳转机制:首先是发送一个 HTTP 请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到 Session。 以下是一个使用 Response.Redirect 的示例代码: ```csharp using System; using System.Web.UI; namespace WebApplication1 { public partial class List : Page { protected void Page_Load(object sender, EventArgs e) { // Get response. var response = base.Response; // Redirect temporarily. // Don't throw an HttpException to terminate. response.Redirect("http://www.jb51.net", false); } } } ``` Server.Execute Server.Execute 是一种服务器端跳转方法,它可以跳转到相同的应用程序中任何页面。这种方法的优点是速度快,跳转后可以保留内部空间保存的所有数据信息。但是,它不能跳转到外部站点,也不能跳过登录保护。 以下是一个使用 Server.Execute 的示例代码: ```csharp using System; using System.Web.UI; namespace WebApplication1 { public partial class List : Page { protected void Page_Load(object sender, EventArgs e) { // Server.Execute("/NewPage.aspx", false); } } } ``` Server.Transfer Server.Transfer 是一种服务器端跳转方法,它可以跳转到相同的应用程序中任何页面。这种方法的优点是速度快,跳转后可以保留内部空间保存的所有数据信息。但是,它不能跳转到外部站点,也不能跳过登录保护。 以下是一个使用 Server.Transfer 的示例代码: ```csharp using System; using System.Web.UI; namespace WebApplication1 { public partial class List : Page { protected void Page_Load(object sender, EventArgs e) { // Server.Transfer("/NewPage.aspx"); } } } ``` 其他四种跳转方法 除了上述三种方法外,还有四种其他的跳转方法: * Response.RedirectPermanent:它与 Response.Redirect 相似,但它会返回一个永久跳转的状态码(301)。 * Response.RedirectToRoute:它可以跳转到指定的路由。 * Server.TransferRequest:它可以跳转到相同的应用程序中任何页面,同时可以保留内部空间保存的所有数据信息。 * HttpContext.RewritePath:它可以跳转到相同的应用程序中任何页面,同时可以保留内部空间保存的所有数据信息。 ASP.NET 中有七种不同的跳转方法,每种方法都有其优缺点,开发者可以根据实际情况选择合适的跳转方法。