#asp.net-core #session
#asp.net-core #сеанс
Вопрос:
Я пытаюсь выполнить цикл через объект сеанса DeserializeObject, и у меня возникает ошибка
CustomerBasket’ не содержит определения для ‘ToList’, и не удалось найти доступный метод расширения ‘ToList’, принимающий первый аргумент типа ‘CustomerBasket’ (вам не хватает директивы using или ссылки на сборку?)
Класс корзины клиентов
public class CustomerBasket
{
public int Id { get; set; }
public string Reference { get; set; }
public string Description { get; set; }
[DisplayName("Prix Unit")]
public string ItemPriceCfa { get; set; }
public string DiscountItemPriceCfa { get; set; }
public int? Quantity { get; set; }
[DisplayName("Prix Total")]
public string TotalPrice { get; set; }
public int OrderId { get; set; }
}
Добавить элемент в класс
var orderdetailstEntry = new List<CustomerBasket>
{
new CustomerBasket {Id = itemId, Quantity=qty, TotalPrice= itemvalue.ToString(),
Reference=basket.Reference,Description=basket.Description, I
temPriceCfa=basket.ItemSalePrice},
};
Передача списка в сеанс
HttpContext.Session.SetString("ShoppingCard", JsonConvert.SerializeObject(orderdetailstEntry));
У меня возникает ошибка здесь при попытке выполнить цикл через объект сеанса DeserializeObject Я думаю, что мне чего-то не хватает, мне нужно преобразовать сеанс в список, но я не знаю, как это сделать
var getShoppingCard = JsonConvert.DeserializeObject<CustomerBasket>(HttpContext.Session.GetString("ShoppingCard")) ;
foreach (var memorycount in getShoppingCard.ToList())
{
getShoppingCard.Where(w => w.Id == memorycount.Id).ToList().ForEach(s => s.OrderId = orderId);
totalorder = totalorder Convert.ToInt32(memorycount.TotalPrice);
}
Ответ №1:
Вы десериализуете свой объект в CustomerBasket
вместо List<CustomerBasket>
вот почему ToList
расширение недоступно.
var getShoppingCard = JsonConvert.DeserializeObject<List<CustomerBasket>>(HttpContext.Session.GetString("ShoppingCard"));