c# - 从 Session 中删除特定值
问题描述
我想从“会话”中删除特定项目。我的代码是:
public ActionResult DeleteProductFromCart(AddToCart id)
{
MyDBContext myDBContext = new MyDBContext();
List<AddToCart> cart = (List<AddToCart>)Session["cart"];
cart.RemoveAt(Convert.ToInt16(cart.Contains(id)));
return RedirectToAction("ViewCart");
}
但这不能正常工作。
解决方案
cart.Contains(id)
将返回一个布尔值,而不是您要删除的项目的索引。
您将需要进行一些类似于以下代码的调整(假设您的AddToCart
类有一个 Id 字段):
1-重命名您传递的参数以获得更好的可读性
public ActionResult DeleteProductFromCart(AddToCart item)
2- 获取该项目(如果它确实存在于您的收藏中):
var itemToBeRemoved = cart.SingleOrDefault(i=>i.Id == item.Id);
// if the item exists, remove it from the cart collection
if(itemToBeRemoved!=null)
{
cart.remove(itemToBeRemoved);
}
推荐阅读
- wordpress - 我正在尝试使用 Duplictor 插件将实时 wordpress 网站迁移到我的本地计算机,但我遇到了一些问题
- java - ActiveMQ Artemis 浏览器在消息数 < 1000 时清空消息
- python-3.x - 比较两列中的多个元素,了解它们在 Python 数据框中的顺序
- perl - 比较两个 Time::Piece 对象
- javascript - Angular pdf 显示:SafeValue 必须使用 [property]=binding
- python - 对于在 sql 查询中遍历两个列表的循环,这些列表之一由较小的列表组成
- sql - SQL 查询:没有得到正确的输出
- reactjs - Redux-Logic 和 Redux-thunk 的区别
- php - 在php中提交带有循环和变量的数组
- asp.net - 从代码后面添加onclick代码格式化吗?