如何通过按钮从一个ASP.NET页面重定向到另一个(“Webform2.aspx”)?
答案 0 :(得分:10)
您可以使用Response.Redirect()
答案 1 :(得分:8)
设置按钮的PostBackUrl属性,如下所示:
button1.PostBackUrl= "Webform2.aspx";
答案 2 :(得分:2)
有很多方法。 Response.Redirect
,Server.Transfer
,Javascript调用该页面。
当您没有按钮的服务器端操作时,需要进行Javascript调用。
onclick="javascript:window.location.href = Webform2.aspx?id='<%=Request.QueryString["id"]%>'
“
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网址的跨页回发.. http://aspdotnetcode.source-of-humor.com/TipsAndTricks/General/CrossPagePostbackAspNetCrossPagePostback.aspx
答案 3 :(得分:2)
就个人而言,如果您想要做的只是在点击按钮时加载新页面,我会使用客户端脚本执行此操作。
您可以使用JS库(例如:jQuery),如下所示:
<强>的jQuery 强>
$(function() {
$('#<%= button1.ClientID %>').click(function() {
window.location.href = "Webform2.aspx";
});
});
<强> ASP.NET 强>
<asp:Button id="button1" runat="server"/>
或者,对于一种特殊的ASP.NETesque方式,您可以使用 Button.PostBackUrl
,如Antonio建议的那样,它仍然使用客户端脚本,但意味着您不必自己写吧。该按钮的HTML呈现为:
<input type="submit" name="button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("button1", "", true, "", "webform2.aspx", false, false))" id="button1" />
如果你有其他处理要做服务器端,然后你需要重定向,请使用
点击处理程序中的Response.Redirect("Webform2.aspx");
。
如果这不适合您,请在您的问题中添加更多细节,以解释发生了什么。
答案 4 :(得分:2)
您可以使用以下代码重定向到另一个ASP.NET页面:
Response.Redirect("Webform.aspx");
这是最简单的方式
答案 5 :(得分:1)
您可以使用以下代码:
protected void Button1_Click(object sender, EventArgs e) {
Response.Redirect("default2.aspx");
}
请注意,default2.aspx
是您的第二个网页名称,而您
答案 6 :(得分:0)
Response.Redirect(string url)
发出302 HTTP状态代码,指示客户端重定向到url
。浏览器将针对url
发出新请求,并且地址栏中的URL将会更改。
Server.Transfer(string path)
终止当前页面的执行,并开始在IIS中指定的path
上执行新页面,即内部。因此,浏览器地址栏中的URL不会更改。您转移到的页面必须是同一网站上的 aspx 页面。
差异很微妙但很重要。考虑这个问题的一个简单方法就是问问自己&#34;用户是否应该为此网址添加书签/收藏?&#34;。如果网址已更改,请使用Response.Redirect
,并且以后访问内容应位于新网址上。如果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");
}
答案 7 :(得分:0)
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”网页。