将上下文中的泛型列表传递给泛型处理程序ashx

时间:2012-05-25 21:23:47

标签: c# asp.net

我可以通过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。那么以某种方式在通用处理程序中重新生成产品列表的更好方法是什么?如果我希望它不仅仅用于产品清单呢?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

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