0

ジェネリックリストをHttpContextを介してジェネリックハンドラーに渡すことはできますか?

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

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

}

ハンドラーに到達するとnullになります。では、どういうわけか、汎用ハンドラー内で製品リストを再生成するためのより良い方法はありますか?製品リストだけでなく、それを使用できるようにしたい場合はどうすればよいですか?

4

2 に答える 2

2

Redirect() を呼び出すと、現在のリクエストは HttpContext とともに終了します。リクエスト間でデータを保持するには、セッションを使用するか、パラメーターを URL に直接渡します

于 2012-05-25T21:30:58.103 に答える
1

HttpContext の有効期間は単一のリクエストであり、 Redirect はクライアント側のリダイレクトを行い、その結果、2 つのリクエストが発生します。

セッション状態を使用して、そのようなデータを渡したり、状態を表示したり、毎回クエリを実行したりできます。

静的データ (ユーザーごとではない) は、アプリケーション レベルのキャッシュ (または静的メンバー、これもお勧めできません) を介して共有できます。

于 2012-05-25T21:31:35.280 に答える