Несколько записей через переменную сеанса в ASP.NET - PullRequest
0 голосов
/ 25 ноября 2010

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

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

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

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

Объект должен продаваться как Serializable.

Например:

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

[Serializable]
public class BasketItem
{
    //...
}
2 голосов
/ 25 ноября 2010

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

EDIT
Итак, на первой странице вы получите

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
...