Хранение нескольких значений в сеансе под одним ключом - возможный список сеансов
Я пытаюсь выяснить способ хранения нескольких значений в моей переменной 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"];
И так далее... Есть ли способ сделать это, и если да, каков наилучший способ?
4 ответа
Как насчет создания class MYCLASS
со свойствами как "type
","shipping
"... и т.д... и хранить экземпляр этого класса в сеансе?
Если вы хотите использовать его, просто извлеките экземпляр из Session
Переменная, введите его в MYCLASS
и использовать это.
это решит вашу проблему?
ура
Вы можете выяснить, что ответили другие, в том числе определить конкретный класс, если он соответствует вашим требованиям. В дополнение к полученному ответу вы можете использовать словарь, в котором в качестве ключа используется строка, а в качестве значения - объект. Затем вы можете сохранить в нем свои значения и прочитать его следующим образом.
var dictionary = new Dictionary<string, object>();
dictionary["type"] = type;
dictionary["shipping"] = shipping;
dictionary["condition"] = condition;
dictionary["minprice"] = minprice;
dictionary["maxprice"] = maxprice;
Session [ID] = dictionary;
Вы можете создать список объектов из ваших значений, давайте предположим, что вы называете это 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"];
Вы можете сделать, как создать класс, который содержит все значения
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; }
}
и назначить этот объект класса для сессии, как
Session[ID] = objProductsData;