【发布时间】:2014-06-04 14:18:59
【问题描述】:
我有一个装有产品的篮子。我正在尝试通过单击带有 ajax 的 (+) 按钮来增加数量;
我的 ajax 代码;
function sepeteEkle(id) {
var urunid = id;
var sessionId = Session.SessionID;
$.ajax({
dataType: "json",
type: "POST",
contentType: "application/json",
url: "/Admin/WebService/Control.asmx/QuanInc",
data: "{'urunid':'" + urunid + "','sessionId':'" + sessionId + "' }",
success: function () {
$("#AllCheckOut").load("CheckOut.aspx #AllCheckOut");
},
error: function () {
}
});
return false;
}
$(document).on('click', '.QuaIncrease', function () {
var nId = $(this).data("id")
sepeteEkle(nId);
});
这是我的中继器;
<asp:Repeater ID="repBasketDetail" runat="server">
<ItemTemplate>
<tr class="cart_table_item">
<!-- Remove from cart link -->
<td class="product-remove">
<a href="http://stylo.senseithemes.com/?page_id=16&remove_item=8d3bba7425e7c98c50f52ca1b52d3735&_n=2e5bf0b319" class="remove" title="Remove this item">×</a> </td>
<!-- The thumbnail -->
<td class="product-thumbnail">
<a href="ShopDetail.aspx?Id=<%#Eval("Id")%>" ><img width="100" height="130" src="<%#Eval("ProductPic") %>" class="attachment-shop_thumbnail wp-post-image" alt="T_7_front"></a> </td>
<!-- Product Name -->
<td class="product-name">
<a href="ShopDetail.aspx?Id=<%#Eval("Id")%>"><%#Eval("ProductName") %></a>
<div class="clear"></div>
<!-- Product price -->
<div class="product-price">
<span class="amount"><%#Eval("ProductPrice") %> TL</span> </div>
</td>
<!-- Quantity inputs -->
<td class="product-quantity">
<div class="quantity buttons_added"><input type="button" value="-" class="minus"><input type="number" name="cart[8d3bba7425e7c98c50f52ca1b52d3735][qty]" step="1" min="" max="" value="<%#Eval("ProductQuantity") %>" size="4" title="Qty" class="input-text qty text" maxlength="12"><input type="button" class="QuaIncrease" data-id=<%#Eval ("Id") %> value="+" ></div> </td>
<!-- Product subtotal -->
<td class="product-subtotal">
<span class="amount">
<%# Eval("ProductPrice") %>
</span> </td>
</tr>
</ItemTemplate>
这是我要增加的网络服务;
[WebMethod]
public void QuanInc(int urunid, string SessionID)
{
using (Models.DermabonEntities db = new Models.DermabonEntities())
{
var product = db.Product.Find(urunid);
if (product != null)
{
var userIp = SessionID;
Basket basket = db.Basket.FirstOrDefault(x => x.UserId == userIp && x.ProductId == urunid);
if (basket != null)
{
basket.ProductQuantity++;
}
db.SaveChanges();
}
}
}
所以我没有登录的东西。我创建随机会话编号和字母以获取每个浏览器的用户。 urunid = producId,来自产品表。所以现在我试图让每次点击(+)值按钮的数量增加 1,就像你在转发器中看到的那样。但它不起作用我还需要减少
mySessionId = '<%=Session.SessionID%>';
alert(mySessionId);
所以我可以提醒会话但仍然不能增加数量
【问题讨论】:
-
它不工作是什么意思,是调用没有到达网络方法还是数据库没有发生变化?
-
好吧,什么都没有发生,没有错误,但数据库中没有任何变化
-
我使用几乎相同的代码添加到购物车按钮,它增加了数量,但这里没有。
-
如果设置断点,你看不到 /Admin/WebService/Control.asmx/QuanInc 被调用?
-
你不能直接在 javascript 中编写 .NET 属性,你需要告诉编译器这些是 .NET 属性而不是 javascript:
var sessionId = '<%= Session.SessionID %>';
标签: jquery asp.net ajax web-services