我正在使用C#在ASP.NET中开发一个应用程序。在我的代码中,我创建了多个会话。在下一页中,我想获得名称以特定字符串开头的所有会话值。我怎么能这样做?
假设在我的页面中,我创建了5个会话名为gs_text1
到gs_text5
的会话,并创建了另外10个名称为es_label1
到es_label10
的会话。现在在下一页上,我想为名称以es
开头的所有会话添加一些值。我怎么能在ASP.NET中做到这一点?
答案 0 :(得分:2)
HttpSessionState object上有一个名为Keys
的属性,它会返回您在会话中放置的所有项目的键。您可以使用linq或其他东西搜索这些键,以获取以给定值开头的所有键。然后,你可以循环遍历它们并做你想做的任何事情。
var requiredKeys = Session.Keys.Where(x=>x.StartsWith("es"));
foreach (var key in requiredKeys)
{
//Do Stuff here
}
N.B。当你说你正在创建“会话名称[blah]的5个会话”时,我认为你的意思是你将对象放入会话中,并将这些名称作为键。如果这不是您的意思,那么您可能需要回过头来解释为什么要创建多个会话以便我们更好地理解......