2016-09-09 4 views
1

Ich versuche, die Controller-Aktion von meinem Skript aufrufen, aber die Methode wird nicht aufgerufen.Call Controller Aktion von Skript in Sicht

Das ist mein Controller-Aktion:

[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); 
} 

Das ist mein Skript:

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

Und das Skript aufgerufen wird, wie von HTML folgt:

<td class=""><img src="" class="img-responsive" onclick="refreshTotal(@product.Id)"></td> 

Die Lösung ist In das Skript hineingehen, aus dem Skript wird der Aufruf nicht zur Aktion gemacht.

Antwort

0

Ich hatte einen Tippfehler in 'productId' - sollte 'ProductId' sein. Es funktioniert jetzt :)

0

alles scheint gut in Ihrem bereitgestellten Code. Haben Sie in der Browser-Konsole nach einem JavaScript-Fehler gesucht und Ihre Aktion ist im richtigen Controller?

+0

Dies ist keine Antwort. Dies ist ein Kommentar. – Berkay

+0

Sorry, ich habe nicht so viel Ansehen (50) in Kommentaren zu antworten. –

+0

Eigentlich musst du nicht antworten, weil er sein eigenes Problem gelöst hat, bevor du es postest. – Berkay