2010-07-26 45 views
0

我有頁面A,B和C.在C的頁面加載中,我使用了查詢字符串參數來顯示一些表,這取決於它來自哪裏,無論是A還是B.有取消按鈕。當用戶點擊取消,它必須檢查它來自哪裏,並應重定向到同一頁面,我的意思是A或B.我一點都不知道如何使用查詢字符串進行重定向。根據查詢字符串重定向頁面

請幫我一把!

謝謝!

回答

2

您可以使用這樣的基地在查詢字符串重定向:

var pageToredirectTo = "default.aspx"; 

switch(Request.QueryString["param"]) { 
    case "a": 
     pageToredirectTo = "pageA.aspx"; 
     break; 
    case "b": 
     pageToredirectTo = "pageB.aspx"; 
     break; 
} 
Response.Redirect(pageToRedirectTo); 
+0

謝謝!它工作得很好! :) – Ram 2010-07-26 13:54:48

0

作爲一個很好的做法,最好在頁面上創建屬性保存,以使其在ViewState中查詢字符串的值爲將來的使用安全並防止黑客的意外行爲。 以下代碼並非完全針對您的情況,而是 - 如果您希望如何使用查詢字符串 - 它是使用查詢字符串傳遞的值來指定哪些數據將顯示在頁面上,並且此頁面上有許多可以進行多次回傳的按鈕最後你會根據查詢字符串的值將用戶重定向到另一個頁面。

public class Default : Page 
{ 
    private readonly string VS_Bool_FromPageA = "VS_Bool_FromPageA"; 

    protected void Page_Load(object sender,EventArgs e) 
    { 
    if(!IsPostBack) 
    { 
     if(!string.IsNullOrEmpty(Request["frompageA"]) 
     { 
     bool fromA; 
     if(bool.TryParse(Request["frompageA"],out fromA) && fromA) 
      FromPageA = true; 
     else 
      FromPageA = false; 
     } 
    } 
    } 


    private bool FromPageA 
    { 
    get 
    { 
     if (ViewState[VS_Bool_FromPageA] != null) 
     { 
     return (bool)ViewState[VS_Bool_FromPageA]; 
     } 
     else 
     return false; 
    } 
    set 
    { 
     ViewState[VS_Bool_FromPageA] = value; 
    } 
    } 

    //if the user changed the value of the query string before hitting the cancel button 
    //your logic will stay consistent 
    protected void buttonCancel_Click(object sender,EventArgs e) 
    { 
    if(FromPageA) 
     Response.Redirect("~/pagea.aspx"); 
    else 
     Response.Redirect("~/pageb.aspx"); 
    } 
}