2012-05-25 58 views
0

我可以通過HttpContext將泛型列表傳遞給泛型處理程序嗎?將上下文中的泛型列表傳遞給泛型處理程序ashx

protected void BtnExportCSV_Click(object sender, EventArgs e) 
{ 
    List<Product> products = BLL.GetProducts(); 
    HttpContext.Current.Items["products"] = products; 

    Response.Redirect("ToCsvHelper.ashx", false); 

} 

它到達處理程序時它爲空。那麼更好的方式是以某種方式重新生成通用處理程序中的產品列表?如果我希望它不僅可用於產品列表,該怎麼辦?

+1

您可以將其存儲在會話中或將其加載到處理程序中 – Prescott

回答

1

HttpContext生存期是單個請求,重定向做客戶端重定向,因此你有2個請求。

您可以使用會話狀態傳遞此類數據,或每次查看狀態或查詢。

靜態數據(不是每個用戶)可以通過應用程序級緩存(或靜態成員,也不是一個好主意)共享。

2

當您調用Redirect()時,當前請求將與HttpContext一起終止。 若要請求之間持續數據使用會話或直接在URL中傳遞參數