Несколько записей через переменную сеанса в ASP.NET

Я создаю корзину покупок в ASP.NET, используя переменные сеанса для передачи данных со страницы shopping.aspx в корзину.aspx, в настоящее время у меня есть страницы, передающие первичный ключ продукта с использованием gridview для корзины .aspx для отображения данных из базы данных.

Однако это работает только для одного элемента за раз, как я могу расширить переменную сеанса, чтобы можно было добавить несколько продуктов, а также количества и т. Д.?


person Community    schedule 25.11.2010    source источник


Ответы (2)


Вы можете использовать свой собственный объект, например. Корзина, которая может иметь одно или несколько свойств.

Объект должен продаваться как сериализуемый.

Например:

[Serializable]
public class Basket
{
    public List<BasketItem> Items {get;set;}
    public int UserId {get;set;}
}

[Serializable]
public class BasketItem
{
    //...
}
person dariol    schedule 25.11.2010

Вы можете поместить в сеанс (почти) любой объект, а не только строки. Таким образом, вы можете использовать List<string> для списка ключей или даже List<Product>.

ИЗМЕНИТЬ
Итак, на первой странице вы получите

var bookids = new List<string>();
// collect all book IDs into the 'bookids' list
Session["bookIDs"] = bookids;

а на второй странице:

var bookids = Session["bookIDs"] as List<string>;
// use all IDs
person Hans Kesting    schedule 25.11.2010