我在删除会话变量时遇到问题。
假设我有30个会话变量...我想删除29个会话变量但只有一个。我怎么能这样做,请帮助我!
我尝试了Session.RemoveAll()这样就删除了所有的会话。但是我要求的是删除除了一个Session之外的所有会话。我该怎么做?
答案 0 :(得分:4)
您可以使用Session.Remove
从会话集合中删除key
。
您可以遍历会话集合
for (int i = 0; i < Session.Contents.Count; i++)
{
var key = Session.Keys[i];
var value = Session[i];
//remove the key except one
if(key!="youkey")
Session.Remove(key);
}
正如@JoachimIsaksson所建议的
for (int i = 0; i < Session.Contents.Count; i++)
{
var key = Session.Keys[i];
var value = Session[i];
//remove the key except one
if(key!="youkey")
{
Session.Remove(key);
i++;
}
}
根据@JoachimIsaksson的建议,我不确定是否正确
for (int i = 0; i < Session.Contents.Count; i++)
{
var key = Session.Keys[i];
var value = Session[i];
//remove the key except one
if(key!="youkey")
{
Session.Remove(key);
i--;
}
}
答案 1 :(得分:1)
你可以简单地保存你想要保留的变量,清除所有变量并将其放回去;
var value = Session["tokeep"];
Session.RemoveAll();
Session["tokeep"] = value;