c# - 如何在 session 变量中保存多个值

标签 c# session-variables

在我的项目中,我想存储最近访问过的 Id(如 CompanyId),并且基于 Id,我需要在 aspx 网页上显示最近的 5 条记录。为此,我在我的 session 类中使用如下 session 变量:

public static string RecentAssetList
{
    get
    {
        return HttpContext.Current.Session["RECENT_ASSET_LIST"].ToString();
    }
    set
    {
        HttpContext.Current.Session["RECENT_ASSET_LIST"] = value;
    }
}

然后从我的页面将值存储到 session 中,如下所示。

    string assetList = "";            
    assetList += assetId.ToString() + ",";
    SessionData.RecentAssetList = assetList;

但它每次只存储一个ID,如果新记录访问 session 只显示新的。 我如何根据我想从数据库获取数据并显示在我的网格中的值在我的 session 中存储多个值。

最佳答案

你应该先读取之前存储的值:

string assetList = SessionData.RecentAssetList;            
assetList += assetId.ToString() + ",";
SessionData.RecentAssetList = assetList;

但是这个解决方案并不完美,因为新的 ID 将永远附加。最好先解析和解释:

string assetList = SessionData.RecentAssetList;            
var ids = assetList.Split(',').ToList().Take(10).ToList();
ids.Add(assetId);
ids = ids.Distinct().ToList();
assetList = string.Join(",", ids);
SessionData.RecentAssetList = assetList;

关于c# - 如何在 session 变量中保存多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743712/

相关文章:

c# - 从具有外键约束的多个表中删除记录

c# - 在 Ubuntu 上禁用证书验证

c# - 在 C# 中更新对象时 session 对象发生变化

c# - 有没有什么工具可以将 Java 转换为 C#?

c# - 如何在 C# 中缩放图片框中的某个点?

c# - 如何使用 session 根据母版页的下拉选择重定向用户?

mule - 从动态 JSON 负载中提取值

javascript - 如何在 Angular 中使用本地存储

asp.net-mvc - Asp.Net MVC和 session

c# - 有人可以帮助我了解选择查询的语法吗?