有没有办法检查你的会话变量是否包含某些内容......就像列表中有一个方法“Contains”一样。有没有类似的东西?一些方法或东西?ASP.NET MVC 5会话
回答
当您从Session
检索项目时,它们的类型为System.Object
。这意味着你没有得到对象的实际类型的任何实际方法。您可以将它转换为正确的类型。在这种情况下,这听起来像你正在存储一个List<string>
。所以我们可以使用as operator。如果对象不是这种类型或者为空,myList
将为空。否则它将是您指定的类型。
List<string> myList = Session["myKey"] as List<string>();
if(myList == null)
{
//either Session["myKey"] was null or the object wasn't a List<string>
}
else
{
if(myList.Contains("fuzzy puppies"))
{
//your list contains fuzzy puppies
}
else
{
//your list doesn't contain fuzzy puppies
}
}
在对象上调用.ToString()
会根据对象类型给出不同的结果。默认行为是打印出对象的类型。但类型可以覆盖此行为。例如,在字符串上调用.ToString()
只会给你字符串本身。在代表某个XML的对象上调用.ToString()
可能会将XML作为字符串提供给您。由于List<string>
不覆盖System.Object.ToString()
的默认行为,它只是打印出“System.Collections.Generic.List`1 [System.String]”
首先检查Session [“yoursession_var”]是否为空。然后转换为List()。然后使用Exists(),如下所述:how to use Exist in List<string> in C#
'.ToString()'不会转换为字符串。为什么要使用IndexOf来代替[String.Contains](https://msdn.microsoft.com/en-us/library/dy85x1sa(v = vs.110).aspx)? – mason
从技术上讲,你可以使用(string)Session [“yoursession_var”],任何一个都会得到一个字符串,然后你可以使用IndexOf()或Contains()。至于为什么我不使用Contains(),数学运算通常比字符串运算更有效,但是如果你看一下CLR,你会发现Contains()在引擎下使用IndexOf(),所以差异相同。顺便说一句,我会尽量避免魔术字符串 - 常量更好。 –
1)Contains是专门用于检测一个字符串是否包含另一个字符串,并且不需要在BCL中重新实现代码。2)ToString不是强制转换3)问题是关于List
嗨,你可以尝试铸造你的会议,所以它可以有一个类型为示例
var listofperson = Session["ListofPerson"] as List<string>;
var hasGeorge = listofperson.Contains("George");
- 1. ASP.NET MVC会话
- 2. MVC 5会话超时
- 3. IIS 5届和Asp.Net会话
- 4. asp.net mvc会话超时
- 5. ASP.NET MVC会话状态
- 6. ASP.NET MVC LCID和会话
- 7. ASP.NET MVC会话到期
- 8. ASP.NET MVC 4会话超时
- 9. ASP.Net MVC - TempData会话问题
- 10. 在ASP.NET MVC会话超时
- 11. 在ASP.NET MVC中的会话
- 12. MVC ASP.net会话是空的
- 13. 如何在ASP.NET MVC 5中设置和检索会话?
- 14. 如何在asp.net中关闭所有用户会话mvc 5
- 15. 用asp.net mvc 5设置会话变量的值
- 16. 认证后的MVC 5会话
- 17. 禁用无Cookie会话.Net MVC 5
- 18. 会话超时绝不会在asp.net mvc
- 19. ASP.NET MVC 5 HttpPost
- 20. ASP.NET 5和MVC
- 21. ASP.NET 5 MVC 6中会有SSRS reportviewer吗?
- 22. 的NullReferenceException ASP.NET MVC 5
- 23. ASP.NET MVC 5和Session
- 24. ASP.Net MVC 5 + SignalR + Ninject
- 25. ASP.NET MVC 5 DropDownList selectedindexchanged
- 26. ASP.NET MVC 5 + Owin + SimpleInjector
- 27. ASP.NET MVC 5和LightInject
- 28. ASP.NET MVC 5插件
- 29. Asp.net MVC 5路由
- 30. ASP.NET MVC会话为空。会话变量没有被设置
您是否试图查看会话本身是否包含某些内容?或者如果Session中的某个对象包含某些内容? – mason
@mason如果会话中的某个对象包含某些东西 – john
您只需将其转换为正确的对象类型,则可以使用该对象上的任何方法。 – mason