我试图想出一种在Session变量中存储多个值的方法。这就是我目前的做法:
Session[ID] = Products;
Session["type"] = type;
Session["shipping"] = shipping;
Session["condition"] = condition;
Session["minprice"] = minprice;
Session["maxprice"] = maxprice;
我想象的方式是我将所有这些存储在相同的KEY下,在我的情况下是ID(生成的GUID值 - 例如02df0-2k4l9),这样我就可以访问所有这些值,如下所示:
Session[ID]["type"];
Session[ID]["condition"];
等等......有没有办法做到这一点,如果是的话,最好的方法是什么?
答案 0 :(得分:2)
如何使用" class MYCLASS
"," type
" ...等等创建属性为shipping
的商店?会话中该类的实例?
如果要使用它,只需从Session
变量中提取实例,将其转换为MYCLASS
并使用它。
会解决你的问题吗?
干杯
答案 1 :(得分:2)
您可以调查其他人的答案,包括根据您的要求定义特定课程。除了已经回答的内容之外,您还可以使用将字符串用作键,将对象用作值的字典。然后,您可以在其中存储您的值,并按以下方式读取它。
var dictionary = new Dictionary<string, object>();
dictionary["type"] = type;
dictionary["shipping"] = shipping;
dictionary["condition"] = condition;
dictionary["minprice"] = minprice;
dictionary["maxprice"] = maxprice;
Session [ID] = dictionary;
答案 2 :(得分:1)
您可以从您的值中创建一个对象列表,假设您将其称为Product
,这是您的对象类:
List<Product> list = new List<Product>();
//how to store them
Session["SessionName"] = list;
//how to receive the list again
var list = (List<Product>)Session["SessionName"];
答案 3 :(得分:1)
您可以创建一个包含所有值的类
if (bool.Parse(ConfigurationManager.AppSettings["Production"]))
{
container.RegisterType<ISomething, Something>();
}
else
{
container.RegisterType<ISomething, SomethingMock>();
}
并将该类对象分配给会话,如
public class ProductData
{
public Product objProduct { get; set; }
public string type { get; set; }
public string shipping { get; set; }
public string condition { get; set; }
public decimal minprice { get; set; }
public decimal maxprice { get; set; }
}