2014-04-28 60 views
1

我控制用戶是否存在於數據庫中。如果它不存在,我想保持登錄頁面。如果存在,我想去Default.aspx頁面。根據情況選擇回傳網址

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    if(condition is okey) 
    { 
     // go default.aspx 
    } 
    else 
    { 
     //stay this page 
    } 
} 

我可以在註釋行上寫什麼來實現這個功能? 謝謝!

+0

由於您的重定向條件以身份驗證爲中心,所以值得問問您是否查看了asp.net成員資格結構和登錄控件。這是非常簡單的設置,它會處理保持登錄頁面上的用戶,並將他們帶到成功的默認位置。如果這符合你的需求,你將得到更乾淨和更可靠的代碼,因爲你不會自己動手。 –

回答

2

聽起來像是你只想做一個重定向:

protected void BtnLogin_Click(object sender, EventArgs e) 
{ 
    if(myCondition) 
    { 
     Response.Redirect("/default.aspx"); 
    } 
    else 
    { 
     //stay this page 
    } 
} 

如果您想保留POST數據,你可以使用Server.Transfer代替(注:根據您的修改,它聲音像這是你所需要的 - 我想你只需要Response.Redirect):

Server.Transfer("/default.aspx"); 

注意轉移POST的處理程序一樣,這將原因瀏覽器重定向,因此將而不是更改瀏覽器的URL。

如果您需要實際發佈到不同的URL並更新瀏覽器,則需要使用跨頁面回發(使用表單元素上的action屬性)直接發佈到該URL,然後驗證頁面,然後在驗證失敗時重定向回原始頁面。