我试图从我的脚本调用控制器操作,但是没有调用该方法。
这是我的控制器动作:
[HttpPost]
public ActionResult EditQuantity(int? id, int quantity)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Cart cart = db.Carts.Find(id);
if (cart == null)
{
return HttpNotFound();
}
cart.Quantity = quantity;
db.SaveChanges();
string url = this.Request.UrlReferrer.AbsolutePath;
return Redirect(url);
}
这是我的剧本:
<script>
function refreshTotal(ProductId) {
var qty = document.getElementById("product-quantity-" + ProductId).value;
var UnitPrice = document.getElementById("unit-price-" + ProductId).innerText;
var total = qty * UnitPrice;
document.getElementById("product-total-" + ProductId).innerHTML = "$" + total.toFixed(2);
$.post('@Url.Action("EditQuantity", "Home")', { "id": ProductId, "quantity": qty }, function (data) {
});
}
</script>
从HTML中调用脚本如下:
<td class=""><img src="" class="img-responsive" onclick="refreshTotal(@product.Id)"></td>
解决方案是在脚本中,从脚本调用没有进行操作。
答案 0 :(得分:0)
我在'productId'中输了一个错字 - 应该是'ProductId'。它现在正在工作:)
答案 1 :(得分:0)
您提供的代码中的一切似乎都很好。您是否在浏览器控制台中查找了任何javascript错误,并且您的操作是在正确的控制器中?