2012-09-05 69 views
0

在asp.net網站上,一個WebForm,按鈕onclick事件後,我打電話背後方法的代碼如下重定向到ASPX從cs文件文件

protected void Button1_Click(object sender, EventArgs e) 
{ 
    MyClass obj = new MyClass(); 
    String res = obj.CallMe("some parameters"); 
} 

凡MyClass的居住在MyClass.cs文件。 內的CallMe()

public String CallMe("some parameters") 
{ 
    String to_return =""; 
    //some code : to_return="something"; 
    string page_name= // some code returns a name of page to redirect to 
    if(page_name is null) 
    { return to_return; } 
    else 
     //redirect to page_name; 
} 

如何從cs文件重定向,因爲我們沒有獲得HttpResponse對象?

+0

您的服務級別不應該執行任何重定向。與邏輯分開看待。 –

+0

感謝亞瑟。但是,如果我將頁面的名稱返回給button1_click函數,我將如何知道它的頁面名稱而不是通常返回的字符串? –

回答

1

如果您的課程是從網頁中調用的,則可以訪問該課程中的靜態HttpContext.Current實例。只需導入System.Web命名空間,並呼籲爲正常:

using System.Web; 
System.Diagnostics.Debug.WriteLine(HttpContext.Current.Timestamp.ToString()); 
HttpContext.Current.Response.Redirect("http://www.google.com"); 
1

試試這個

if(HttpContext.Current != null) 
    HttpContext.Current.Response.Redirect("~"); 

使用的HttpContext,你可以得到當前請求,響應等,但要注意經常檢查,以確保當前上下文不爲空,尤其是在您從業務層類調用時。

ASP.Net Forum