如何从一个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.Redirect
, Server.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"); }