2016-02-18 78 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); 
} 
相關問題