如何从一个ASP.NET页面重定向到另一个

如何通过按钮从一个ASP.NET页面重定向到另一个(“Webform2.aspx”)?

您可以使用Response.Redirect()从一个页面重定向到另一个页面

设置按钮的PostBackUrl属性,如下所示:

 button1.PostBackUrl= "Webform2.aspx"; 

就个人而言,如果您想要做的就是在单击按钮时加载新页面,我会使用客户端脚本执行此操作。

您可以使用JS库(例如:jQuery),如下所示:

jQuery的

 $(function() { $('#<%= button1.ClientID %>').click(function() { window.location.href = "Webform2.aspx"; }); }); 

ASP.NET

  

或者,对于一个特定的ASP.NETesque方法,你可以使用Button.PostBackUrl如Antonio建议的那样,它仍然使用客户端脚本,但这意味着你不必自己编写它。 该按钮的HTML呈现为:

  

如果你有其他处理要做服务器端,然后需要重定向,请使用Response.Redirect("Webform2.aspx"); 在你的点击处理程序中

如果这不适合您,请在您的问题中添加更多细节,以解释发生了什么。

您可以使用以下代码重定向到另一个ASP.NET页面:

 Response.Redirect("Webform.aspx"); 

这是最简单的方法

那么有很多方法。 Response.RedirectServer.Transfer ,Javascript调用页面。

当您没有按钮的服务器端操作时,需要Javascript调用。 onclick="javascript:window.location.href = Webform2.aspx?id='<%=Request.QueryString["id"]%>'

Server.Transfer将在服务器端进行Server.Transfer 。 即,浏览器仍会在webform2的响应后显示。 Webform1.aspx会将请求重定向到webform2,webform2将提供req。 (Req = 1,Res = 1)

Response.Redirect :webform1将发送一个响应,要求浏览器向webform2发出新请求。 在这种情况下,浏览器将更改url,因为它正在对webform2进行新的请求。(Req = 1 + 1,Res = 1 + 1)

如果您感兴趣,还有一种方法form.submit() 。 传统的html表单提交。

忘了提到最好的,使用PostBack url的跨页回发.. http://aspdotnetcode.source-of-humor.com/TipsAndTricks/General/CrossPagePostbackAspNetCrossPagePostback.aspx

您可以使用以下代码:

 protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("default2.aspx"); } 

请注意, default2.aspx是您的第二个网页名称

Response.Redirect和Server.Transfer方法都用于将用户从一个网页传输到另一个网页。 两种方法都用于相同的目的,但仍然存在如下差异。

Response.Redirect方法将请求重定向到新URL,并在当前请求的Server.Transfer方法中指定新URL,终止当前页面的执行,并使用指定的页面URL路径开始执行新页面。

Response.Redirect和Server.Transfer都具有相同的语法:

的Response.Redirect( “UserDetail.aspx”); Server.Transfer的( “UserDetail.aspx”);

在讨论更多要点之前,我想解释一些HTTP状态代码,这些对于理解这两者之间的基本差异非常重要。 HTTP状态代码是Web服务器用于与Web浏览器或用户代理通信的代码。 Response.Redirect向浏览器发送HTTP请求,然后浏览器将该请求发送到Web服务器,然后Web服务器向Web浏览器发送响应。 例如,假设您在网页“UserRegister.aspx”页面上,它有一个按钮,可以将您重定向到“UserDetail.aspx”网页。

Response.Redirect(string url)发出302 HTTP状态代码,指示客户端重定向到url 。 浏览器将发出新的url请求,URL将在地址栏中更改。

Server.Transfer(string path)终止当前页面的执行,并开始在指定path上执行新页面,即在IIS 内部执行 。 因此,浏览器地址栏中的URL不会更改。 您转移到的页面必须是同一网站中的aspx页面。

差异很微妙但很重要。 考虑这个的一个简单方法是问自己“应该用户书签/喜欢这个URL吗?”。 如果URL已更改,则使用Response.Redirect ,并且以后对内容的访问应该在新URL上。 如果URL正确且最新,请使用Server.Transfer但是您需要一次显示不同的内容 – 可能您正在显示错误消息,或者您需要用户输入其凭据才能继续,或者还有其他原因要求内容应该更改但URL不应该。

上面的任何一个都可以在代码隐藏中的ASP.NET Button控件的Click事件处理程序中使用:

 protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("Webform2.aspx"); // OR Server.Transfer("Webform2.aspx"); }