C# 如何从一个ASP.NET页面重定向到另一个ASP.NET页面
如何通过按钮从一个ASP.NET页面重定向到另一个页面(“Webform2.aspx”)。您可以使用C# 如何从一个ASP.NET页面重定向到另一个ASP.NET页面,c#,asp.net,.net,webforms,C#,Asp.net,.net,Webforms,如何通过按钮从一个ASP.NET页面重定向到另一个页面(“Webform2.aspx”)。您可以使用Response.redirect()设置按钮的PostBackUrl属性,如下所示: button1.PostBackUrl= "Webform2.aspx"; 有很多方法响应。重定向,服务器。传输,Javascript调用到页面 当您没有按钮的服务器端操作时,需要Javascript调用。 onclick=“javascript:window.location.href=Webform2.a
Response.redirect()
设置按钮的PostBackUrl属性,如下所示:
button1.PostBackUrl= "Webform2.aspx";
有很多方法<代码>响应。重定向,
服务器。传输
,Javascript调用到页面
当您没有按钮的服务器端操作时,需要Javascript调用。
onclick=“javascript:window.location.href=Webform2.aspx?id=”
”
Server.Transfer
将在服务器端执行重新定向。i、 e,浏览器在webform2响应后仍将显示。Webform1.aspx将把请求重新定向到webform2,webform2将给出请求。(请求=1,回复=1)
Response.Redirect
:webform1将发送一个响应,要求浏览器向webform2发出新请求。在这种情况下,浏览器将在向webform2发出新请求时更改url。(req=1+1,Res=1+1)
如果您感兴趣,还有一种方法,form.submit()
。传统的html表单提交
忘了提到最好的一点,带回发url的跨页回发。。
就个人而言,如果您只想在单击按钮时加载一个新页面,我会使用客户端脚本 您可以为此使用JS库(例如:jQuery),如下所示: jQuery
$(function() {
$('#<%= button1.ClientID %>').click(function() {
window.location.href = "Webform2.aspx";
});
});
如果您需要在服务器端执行其他处理,并且以后需要重定向,请使用
Response.Redirect(“Webform2.aspx”)单击处理程序中的代码>
如果这对您不起作用,请在您的问题中添加更多细节,以解释发生了什么。您可以使用以下代码重定向到另一个ASP.NET页面:
Response.Redirect("Webform.aspx");
这是最简单的方法,您可以使用以下代码:
protected void Button1_Click(object sender, EventArgs e) {
Response.Redirect("default2.aspx");
}
请注意,default2.aspx
是您的第二个网页名,您发出302 HTTP状态代码,指示客户端重定向到url
。浏览器将发出对url
的新请求,url将在地址栏中更改
终止当前页面的执行,并在指定的路径上开始执行新页面,即在IIS内部。因此,浏览器地址栏中的URL不会更改。您传输到的页面必须是同一网站中的aspx页面
这些差异很微妙,但很重要。思考这个问题的一个简单方法是问自己“用户是否应该为这个URL添加书签/收藏夹?”。使用Response.Redirect
如果URL已更改,并且将来对内容的访问应该在新的URL上。如果URL是正确且最新的,但这一次您需要显示不同的内容,请使用Server.Transfer
——可能您显示了错误消息,或者您需要用户输入他们的凭据以继续,或者由于其他原因,内容应该更改,但URL不应该更改
以上任一项均可在代码隐藏中ASP.NET按钮控件的单击事件处理程序中使用:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Webform2.aspx");
// OR
Server.Transfer("Webform2.aspx");
}
Response.Redirect和Server.Transfer方法都用于将用户从一个网页传输到另一个网页。这两种方法用于相同的目的,但仍存在以下一些差异
Response.Redirect方法将请求重定向到新URL并指定新URL,而当前请求的Server.Transfer方法将终止当前页面的执行,并使用页面的指定URL路径开始执行新页面
Response.Redirect和Server.Transfer的语法相同,如下所示:
重定向(“UserDetail.aspx”);
Server.Transfer(“UserDetail.aspx”)
在讨论更多问题之前,我想解释一些HTTP状态代码,这些代码对于理解这两者之间的基本区别非常重要。HTTP状态代码是Web服务器用于与Web浏览器或用户代理通信的代码。
重定向将HTTP请求发送到浏览器,然后浏览器将该请求发送到web服务器,然后web服务器将响应发送到web浏览器。例如,假设您在网页“UserRegister.aspx”上,它有一个按钮,可以将您重定向到“UserDetail.aspx”网页。Response.Redirect应该可以工作..对于路由人员来说-Response.redirectorote
可能重复的I将要+1,因为这个概念很好(如果只是加载一个新页面,则无需回发),但是按钮
没有NavigateUrl
属性。使用window.location.href=“somepage.aspx”是否会触发回发,如果是,有没有办法像浏览器的“回发”按钮那样取消回发功能?我如何重定向到其他站点?
protected void Button1_Click(object sender, EventArgs e) {
Response.Redirect("default2.aspx");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Webform2.aspx");
// OR
Server.Transfer("Webform2.aspx");
}