在我的项目中,我想存储最近访问过的 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;
我是一名优秀的程序员,十分优秀!