【发布时间】:2026-02-25 13:15:01
【问题描述】:
我正在使用 web 服务将产品添加到购物篮中的代码;
[WebMethod]
public void calistir(int urunid, string GirenIp)
{
using (Models.DermabonEntities db = new Models.DermabonEntities())
{
var productName = (from i in db.Product
where i.Id == urunid
select i.ProductName).FirstOrDefault();
var productPrice = (from i in db.Product
where i.Id == urunid
select i.ProductPrice).FirstOrDefault();
var productId = (from i in db.Product
where i.Id == urunid
select i.Id).FirstOrDefault();
var productPic = (from i in db.Product
where i.Id == urunid
select i.ProductPicture).FirstOrDefault();
var userIp = GirenIp;
Basket create = new Basket();
create.ProductName = productName;
create.ProductId = productId;
create.ProductPrice = productPrice;
create.ProductPic = productPic;
create.UserId = userIp;
var qua = "2";
create.ProductQuantity = Convert.ToInt32(qua);
db.Basket.Add(create);
db.SaveChanges();
}
}
在这里我手动添加产品数量。但是我想控制是否有相同的产品增加数量,如果没有增加数量 1。
我尝试过这样的事情;
var CountProduct= db.Basket.FirstOrDefault();
if (CountProduct.ProductId == urunid)
{
CountProduct.ProductQuantity += Convert.ToInt32(adet);
create.ProductQuantity = Convert.ToInt32(adet);
db.SaveChanges();
}
GirenIp = sessionID 来自 ajax , urunId = ProductId 来自 ajax ,adet 表示数量。
阿贾克斯;
function sepeteEkle(id) {
var urunid = id;
var GirenIp = $("#userId").val();
$.ajax({
dataType: "json",
type: "POST",
contentType: "application/json",
url: "/Admin/WebService/Control.asmx/calistir",
data: "{'urunid':'" + urunid + "','GirenIp':'" + GirenIp + "' }",
success: function(){
$("#cartContent").load("MiniSepet.aspx #cartContent");
},
error: function () {
$("#cartContent").load("MiniSepet.aspx #cartContent");
}
});
return false;
}
$(document).on('click', '.sepetat', function () {
var nId = $(this).data("id")
sepeteEkle(nId);
});
sepetat= add to basket
篮子桌;
public partial class Basket
{
public int Id { get; set; }
public string UserId { get; set; }
public Nullable<int> ProductId { get; set; }
public string ProductName { get; set; }
public Nullable<double> ProductPrice { get; set; }
public Nullable<int> ProductQuantity { get; set; }
public string ProductPic { get; set; }
}
}
【问题讨论】:
-
我知道英语可能不是您的第一语言,但请使用
code(不是代码)作为单数和复数。您不会用英语说“代码”(至少不是在 source-code 的上下文中,它是它的缩写),例如“这是我的代码”、“这是一些代码”等 :) -
好的,谢谢你告诉我=)
-
根据您的代码,所有用户只有一个篮子...我猜不是这样 :) 我会相应地调整代码。
-
是的,我为所有用户准备了一个购物篮,我为每个用户创建会话 ID 并将其发送到购物篮。所以我使用 sessionID 控制购物篮
-
好的。您需要对下面的答案进行一些小的更改,但它显示了更好的查找和修改对象的模式。使用
Find根据主键获取单条记录。不要为单个属性一遍又一遍地调用 LINQ 查询(每个属性都是一个单独的 SQL 请求!)。
标签: c# asp.net ajax web-services