从视图

时间:2016-09-09 12:39:03

标签: javascript ajax asp.net-mvc controller

我试图从我的脚本调用控制器操作,但是没有调用该方法。

这是我的控制器动作:

 [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>

解决方案是在脚本中,从脚本调用没有进行操作。

2 个答案:

答案 0 :(得分:0)

我在'productId'中输了一个错字 - 应该是'ProductId'。它现在正在工作:)

答案 1 :(得分:0)

您提供的代码中的一切似乎都很好。您是否在浏览器控制台中查找了任何javascript错误,并且您的操作是在正确的控制器中?