我使用cookies将数据发送到其他页面。
var list = (from d in dc.Admins
where d.AdminId == data.UserId
select d).FirstOrDefault();
// Make object for cookie
HttpCookie cAdmin = new HttpCookie("cAdmin");
// now add values to cookie cAdmin
cAdmin.Values.Add("adminId",list.AdminId.ToString());
cAdmin.Values.Add("adminName",list.Name.ToString());
Response.Cookies.Add(cAdmin);
// you also set expires time
//cAdmin.Expires = DateTime.Now.AddDays(1);
Response.Redirect("~/Admin Folder/MainPageAdmin.aspx");
在名为MainPageAdmin.aspx
的页面中获取值。
string adminId = Request.Cookies["cAdmin"]["adminId"];
string adminName = Request.Cookies["cAdmin"]["adminName"];
lblAdminId.Text = adminId;
lblAdminName.Text = adminName;
现在它只有两个用于测试目的的键,但我想发送完整的对象。 它包含10-15个字段。
我在这里有两个问题。
Q1。是否可以将LINQ查询结果的对象添加到cookie。
例如
var list = (from d in dc.Admins
where d.AdminId == data.UserId
select d).FirstOrDefault();
// Make object for cookie
HttpCookie cAdmin = new HttpCookie("cAdmin");
// now add complete oject to cookie cAdmin
cAdmin.Values.Add("admin","list");
如果是,那么如何,如果没有那么为什么?
Q2。如果Q1的答案为否,则可以使用cookie对象访问密钥名称。
例如
我有Cookie对象cAdmin
,我想访问此对象中的所有键名称,如cAdmin.keyname
。
因为记住所有键名都很困难。请帮忙。
答案 0 :(得分:0)
var list = (from d in dc.Admins
where d.AdminId == data.UserId
select d).FirstOrDefault().ToDictionary<TKey,Tvalue>(delegateMethod);
foreach(var entry in list)
{
cAdmin.Values.Add(entry.Key,entry.Value);
}