簡體   English   中英

如何從一個ASP.NET頁面重定向到另一個

[英]How to redirect from one ASP.NET page to another

如何通過按鈕從一個ASP.NET頁面重定向到另一個(“Webform2.aspx”)?

您可以使用Response.Redirect()從一個頁面重定向到另一個頁面

設置按鈕的PostBackUrl屬性,如下所示:

button1.PostBackUrl= "Webform2.aspx";

您可以使用以下代碼重定向到另一個ASP.NET頁面:

Response.Redirect("Webform.aspx");

這是最簡單的方法

那么有很多方法。 Response.RedirectServer.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://pdpdotnetcode.source-of-humor.com/TipsAndTricks/General/CrossPagePostbackAspNetCrossPagePostback.aspx

就個人而言,如果您想要做的就是在單擊按鈕時加載新頁面,我會使用客戶端腳本執行此操作。

您可以使用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"); 在你的點擊處理程序中

如果這不適合您,請在您的問題中添加更多細節,以解釋發生了什么。

您可以使用以下代碼:

protected void Button1_Click(object sender, EventArgs e) {
    Response.Redirect("default2.aspx");
}

請注意, default2.aspx是您的第二個網頁名稱

Response.Redirect(string url)發出302 HTTP狀態代碼,指示客戶端重定向到url 瀏覽器將發出新的url請求,URL將在地址欄中更改。

Server.Transfer(string path)終止當前頁面的執行,並開始在指定path上執行新頁面,即在IIS 內部執行 因此,瀏覽器地址欄中的URL不會更改。 您轉移到的頁面必須是同一網站中的aspx頁面。

差異很微妙但很重要。 考慮這個的一個簡單方法是問自己“用戶應該書簽/喜歡這個URL嗎?”。 如果URL已更改,則使用Response.Redirect ,並且以后對內容的訪問應該在新URL上。 使用Server.Transfer如果URL正確且最新,但您需要一次顯示不同的內容 - 可能您正在顯示錯誤消息,或者您需要用戶輸入其憑據才能繼續,或者還有其他原因要求更改但URL不應該。

上面的任何一個都可以在代碼隱藏中的ASP.NET Button控件的Click事件處理程序中使用:

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("Webform2.aspx");
      // OR
    Server.Transfer("Webform2.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”網頁。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM