2013-04-29 94 views
1

我有一個非常簡單的JS-方法:控制器方法不叫

<script language="javascript"> 
    function AmountChanged(callingTextbox) {     
     var enteredQuantity = callingTextbox.value; 
     $.getJSON("/Catalog/GetEnteredQuantity", 
     { 
      id: enteredQuantity 
     }, 
     function (data) { 
      alert(data.MoneyText);     
     }); 
    } 
</script> 

這「應該」在我的控制器調用一個函數:

public partial class CatalogController : BaseController { 
    [HttpPost] 
    public JsonResult GetEnteredQuantity(object id) 
    { 
     var result = new { MoneyText = "kost nix" }; 
     return Json(result); 
    } 
} 

通過Chrome瀏覽器,我可以看到的是, JavaScript函數被調用。調試器逐步執行,直到線路$.getJSON("/Catalog/GetEnteredQuantity",,然後跳轉到該JS函數的最後一個右括號。但GetEnteredQuantity() - 方法從不調用。

控制檯顯示一個"http://localhost:2451/Catalog/GetEnteredQuantity?id=48 404 Not Found"

這裏有什麼問題?

+2

那是因爲你的AJAX調用生成取出HttpPost屬性的'GET Request'和控制器配置爲接受'POST requests',嘗試刪除'[HttpPost]'從您的控制器 – Drew 2013-04-29 09:51:12

+0

謝謝。而已。如果你寫這個作爲答案,我會標記它:) – 2013-04-29 10:00:03

回答

0

從動作

public partial class CatalogController : BaseController { 
    [HttpPost] //Remove it 
    public JsonResult GetEnteredQuantity(object id) 
    { 
     var result = new { MoneyText = "kost nix" }; 
     return Json(result); 
    } 
} 
+0

@Drew已經在評論中回答了這個(舊)問題。謝謝:) – 2014-01-27 09:54:45

+0

對不起,我錯過了 – 2014-01-27 09:56:10