我有ajax是:
<script>
$( document ).ready(function(){
$('#addtocart').click(function () {
var size = $('#ddlsize').val();
var color = $('#ddlcolor').val();
var id ='@Model.ProductId';
alert(size + color +id);
$.ajax({
url: '@Url.Action("AddTocart", "ShoppingCart")',
data: {
id: id,
size: size,
color: color,
},
dataType: "html",
type: 'POST',
success: function (data) {
alert("Da them vao gio hang");
},
error: function () {
alert("Co loi xay ra vui long thu lai");
}
});
});
});
</script>
在我的控制器中
[HttpPost]
public ActionResult AddTocart(int id, string size, string color)
{
Product productitem = dbcon.Products.Where(p => p.ProductId == id).SingleOrDefault();
var cart = ShoppingCart.Getcart(this.HttpContext);
cart.AddtoCart(productitem, size, color);
return View();
}
没有httpget addtocart。当我点击按钮addtocart,ajax中的一些时间错误,但它执行动作addtocart并保存在数据库中,一段时间成功和一些时间错误但不保存数据库,我不知道发生了什么问题?
答案 0 :(得分:0)
由于这种语法
url: '@Url.Action("AddTocart", "ShoppingCart")'
ajax调用的url
选项为/ShoppingCart/AddTocart
,因为您在控制器代码中调用return View();
[HttpPost]
public ActionResult AddTocart(int id, string size, string color)
{
Product productitem = dbcon.Products.Where(p => p.ProductId == id).SingleOrDefault();
var cart = ShoppingCart.Getcart(this.HttpContext);
cart.AddtoCart(productitem, size, color);
return View();
}
你告诉控制器在插入数据库之后打开这个网址:/ShoppingCart/AddTocart
,我猜这不会存在,所以你得到了错误,因为你没有/Views/ShoppingCart/AddTocart.cshtml
或者你在[HttpPost]
类中没有ShoppingCartController
属性的情况下没有此方法。
public ActionResult AddTocart()
{
}
你应该按如下方式返回json
[HttpPost]
public ActionResult AddTocart(int id, string size, string color)
{
Product productitem = dbcon.Products.Where(p => p.ProductId == id).SingleOrDefault();
var cart = ShoppingCart.Getcart(this.HttpContext);
cart.AddtoCart(productitem, size, color);
return Json(new { success = true });
}
并将dataType
选项更改为json
<script>
$( document ).ready(function(){
$('#addtocart').click(function () {
var size = $('#ddlsize').val();
var color = $('#ddlcolor').val();
var id ='@Model.ProductId';
alert(size + color +id);
$.ajax({
url: '@Url.Action("AddTocart", "ShoppingCart")',
data: {
id: id,
size: size,
color: color,
},
dataType: "json",
type: 'POST',
success: function (data) {
alert("Da them vao gio hang");
},
error: function () {
alert("Co loi xay ra vui long thu lai");
}
});
});
});
</script>