如何为www.example.com核心中的会话分配字典值asp.net?

cx6n0qe3  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(157)

如何为www.example.com核心中的会话分配字典值asp.net?
I得到错误Connot从字典〈string,bool〉转换为字符串

//Role
                        var query2 = (from a in _db.MuRole
                                      select new { a.RoleName, a.RolePiority }).ToList();

                        var lvRole = "";
                        Dictionary<string, bool> dicRole = new Dictionary<string, bool>();
                        foreach (var item in query2)
                        {
                            lvRole = item.RoleName;
                            //bool status = function check();
                            dicRole.Add(item.RoleName, false);
                        }

                        HttpContext.Session.SetString("Role", dicRole);
qxgroojn

qxgroojn1#

SessionExtensions.SetString(ISession, String, String) Method仅支援提供的value,且仅限string类型。
要在Session中存储对象,需要序列化该对象(将JSON写入字符串或文件)。
如果安装Newtonsoft.Json库,

using Newtonsoft.Json;

HttpContext.Session.SetString("Role", JsonConvert.SerializeObject(dicRole));

或者使用默认的JsonSerializer

using System.Text.Json;

HttpContext.Session.SetString("Role", JsonSerializer.Serialize(dicRole));

若要从工作阶段取得对象,您必须还原序列化字串。

相关问题