【发布时间】:2014-05-13 01:10:26
【问题描述】:
我在 javascript/json 和 ASP MVC 中遇到了一些购物车问题
场景: 主要功能是订购产品但不是一个普通用户的购物车,它可以是 2 个用户、3 个用户、1 个用户等,但只有 1 个购物车(javascript 对象)。这取决于特定的买家。所以主要的问题是,如果买家为用户1买了一个“蛋糕”,然后想给用户2买不同日期和相同“蛋糕”的东西,那么产品将是“2个蛋糕”,但是对于第二个用户,第一个用户丢失了“蛋糕”。
我还需要指定蛋糕用户和日期。因此,如果 Buyer 为 user1 购买 2014/05/01 的蛋糕(例如使用日期选择器),然后为 user2 购买 2014/05/02 的蛋糕(例如使用日期选择器),每个用户的产品数量将是 1,而不是数组中数量的 2 个蛋糕。
实际上我正在为这样的购物车使用 javascript 对象
var ShoppingCart = {
BuyerID: 1, //I will handle this later
StoreID: 1,
Total: 0,
ShoppingCartItems: [] //array with json objects
};
然后我使用一个函数将按钮上我需要的元素推送到数组
function AddItem (ProductID,ProductName, Description, Price, Quantity, StoreID){
var UserID = $("#hiddenUserID").val(); //e.g. = 1
var ProductDate = $("#hiddenDateField").val(); //e.g. = 2014/05/01
ShoppingCartItems.push({
"ProductID": ProductoID,
"ProductName": ProductName,
"Description": Description,
"Price": Price,
"Quantity": Quantity,
"StoreID": StoreID,
"UserID": UserID, //this will change later
"ProductDate": ProductDate //this will change if the buyer choose another day
})
}
每次买家点击按钮时,此功能都会起作用。产品加载了ajax,这不是问题。用户从产品中选择后,将使用所选产品和我使用的所有规格创建一个新数组。所以我有两个问题
如果买家选择例如1个蛋糕,但他忘记了他需要2个蛋糕,如果他再次点击第2个蛋糕,数组将推送一个新元素或另一个数量为1的产品
- 1 个蛋糕(用户 ID = 1,日期为 2014/05/01)
- 1 个蛋糕(对于 userID = 1 和 dae 2014/05/01)
如果产品 ID、用户 ID 和日期相同,我希望将数量更新为 2 个蛋糕,因为第二个问题源于第一个问题,我需要通过 ProductID、用户 ID 和日期更新数量,因为如果 买家打算给每个用户买一个蛋糕,产品需要分开,比如这样就错了:
userID = 1 的产品
- 1 个蛋糕(用户 ID = 1,日期 2014/05/01)
- 1 个蛋糕(用户 ID = 1,日期 2014/05/02)
- 1 个蛋糕(用户 ID = 1,日期 2014/05/02)
userID = 2 的产品
- 1 个蛋糕(用户 ID = 2,日期 2014/05/01)
我希望数组将产品 ID、用户 ID 和日期的数量分开,因此每个产品都需要在用户 ID 和日期之间有一个“链接”,以便具有如下内容:
userID = 1 的产品
- 1 个蛋糕(用户 ID = 1,日期 2014/05/01)
- 2 个蛋糕(用户 ID = 1,日期 2014/05/02)
userID = 2 的产品
- 1 个蛋糕(用户 ID = 2,日期 2014/05/01)
所以如果 user1 和 user 2 在同一日期有相同的产品,我需要一个验证来通过 userID 和 DATE 分隔每个产品的数量,这是个大问题。
实际上我使用 MVC,所以这种方式是使用 json 和 ajax 发送到特定模型(对于 modelstate.isvalid)的最佳方式。所以这段代码是用我需要的东西来“测试”到数据库的。 希望有人可以帮助我。
提前致谢
【问题讨论】:
标签: javascript jquery arrays asp.net-mvc json