将通用列表存储在Cookie中

时间:2014-02-11 06:39:55

标签: c# asp.net asp.net-mvc cookies

我想将我的通用列表存储到cookie中,因为当我更改代码并重建时会话会一次又一次地到期。我希望将我的列表存储在cookie中,以便在重建时cookie不会过期。

如何将我的通用列表存储到Cookies中。?

我试过了:

List<EvaluationModel> evalModel = (List<EvaluationModel>)Session["ESearch"];
HttpCookie cookie = new HttpCookie("evalModel");
cookie.Value = evalModel;
cookie.Expires = DateTime.Now.AddHours(24);
Response.SetCookie(cookie);

但它说cannot implicitly convert type generic.list to string.

由于

1 个答案:

答案 0 :(得分:1)

Cookie只是字符串数据;唯一的方法是将它序列化为一个字符串(xml,json,任意二进制的base-64,无论如何),并在需要时再将其反序列化。

同样序列化通用列表意味着它将创建一个大字符串,它将在客户端/服务器之间来回运行。因此,您的请求/响应会很重,因此很慢。

IMO,在服务器上缓存这个是正确的;不要把它放在饼干里。