[英]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.Redirect
, Server.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("button1", "", true, "", "webform2.aspx", 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.