Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从一个ASP.NET页面重定向到另一个ASP.NET页面_C#_Asp.net_.net_Webforms - Fatal编程技术网

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

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

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

您可以使用
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");
}