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

时间:2011-05-10 09:00:09

标签: c# asp.net .net webforms

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

8 个答案:

答案 0 :(得分:10)

您可以使用Response.Redirect()

从一个页面重定向到另一个页面

答案 1 :(得分:8)

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

button1.PostBackUrl= "Webform2.aspx";

答案 2 :(得分:2)

有很多方法。 Response.RedirectServer.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(&quot;button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;webform2.aspx&quot;, 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”网页。