【发布时间】:2014-06-03 10:48:26
【问题描述】:
您好,我在转发器中有产品,我想将它们添加到购物篮中
这是按钮;
<asp:Button ID="sepeteEkle" runat="server" Text="EklEPanpa" class="sepetat" data-id=<%#Eval ("Id") %> OnClientClick="sepet(); return false; " />
我运行这个脚本;
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;
}
function sepet() {
$(".sepetat").on("click", function () {
var nId = $(this).data("id")
sepeteEkle(nId);
})
}
这会发送到网络服务
[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;
db.Basket.Add(create);
db.SaveChanges();
}
}
所以我使用 ajax 获取产品 ID 以将其发送到 web 服务,然后通过这种方式将产品名称和内容添加到服务器。但问题是当我单击转发器中的任何项目按钮时,它不会添加。我的第二次点击它添加了 2 行。然后我点击一个不同的产品按钮,它添加了 3 行然后 4 行,它就像这样。但我为每个按钮单击 1 次。我应该怎么做才能解决这个问题?
【问题讨论】:
-
我认为
asp:Button没有class属性,请改用CssClass -
@Amit Soni:他得到结果(只是重复)的事实表明情况并非如此。
-
@user3702153 +1 用于提供代码和 HTML 以及对问题的良好描述。
标签: jquery asp.net ajax web-services