ASP.NET MVC 5会话

时间:2017-04-17 17:56:49

标签: asp.net asp.net-mvc asp.net-mvc-5

有没有办法检查你的会话变量是否包含某些内容......就像列表中有一个方法"包含"。有类似的东西吗?某种方法还是什么?

3 个答案:

答案 0 :(得分:0)

您好,您可以尝试投射会话,以便它可以有一个类型,例如

var listofperson = Session["ListofPerson"] as List<string>;

var hasGeorge = listofperson.Contains("George");

答案 1 :(得分:-1)

首先,检查Session [“yoursession_var”]是否为空。然后转换为List()。然后使用Exists(),如下所述:how to use Exist in List<string> in C#

答案 2 :(得分:-1)

Session检索项目时,它们的类型为System.Object。这意味着您无法获得该对象的实际类型的任何实际方法。您可以通过将其强制转换为正确的类型来实现。在这种情况下,听起来您正在存储List<string>。所以我们可以使用as operator。如果对象不属于该类型或者开头为null,则myList将为null。否则它将是您指定的类型。

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()的默认行为,因此它只打印出&#34; System.Collections.Generic.List`1 [System.String]&#34;