2016-02-18 42 views
0

我使用cookies将数据发送到其他页面。在页面我如何获得一个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 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"); 

如果是,那么如何,如果没有,为什么? Q2302。如果Q1的答案是否定的,那么是否可以通过cookie对象访问键名。

例如

我有Cookie对象cAdmin,我想从这个对象访问所有的按键名称,比如cAdmin.keyname

因为要记住所有的键名非常困难。请帮忙。

+0

对于Q1,我建议将您的列表写入Json对象并将其传递给cookie。 – HimBromBeere

+0

@HimBromBeere你可以给我一些代码示例。 –

回答

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); 
} 
相关问题