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);

}

当它到达处理程序时它为空。那么以某种方式在通用处理程序中重新生成产品列表的更好方法是什么?如果我希望它不仅可用于产品列表怎么办?

4

2 回答 2

2

当您调用 Redirect() 时,当前请求与 HttpContext 一起终止。要在请求之间保留数据,请使用会话或直接在 url 中传递参数

于 2012-05-25T21:30:58.103 回答
1

HttpContext 生命周期是单个请求, Redirect 执行客户端重定向,因此您有 2 个请求。

您可以使用会话状态来传递此类数据,或查看状态,或每次查询。

静态数据(不是每个用户)可以通过应用程序级缓存(或静态成员,这也不是一个好主意)共享。

于 2012-05-25T21:31:35.280 回答