2013-04-29 3 views
1

я получил довольно простой JS-метод:контроллер метод в MVC не называется

<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 является генерируя 'GET Request' и контроллер настроен на прием' POST requests', попробуйте удалить '[HttpPost]' от вашего контроллера – Drew

+0

Спасибо. Это оно. Если вы напишете это как ответ, я буду отмечать его :) –

ответ

0

Удалить атрибут HttpPost от действия

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

@ Дрю уже ответил на этот (старый) вопрос в комментариях. Спасибо, тем не менее :) –

+0

жаль, что я пропустил это –

Смежные вопросы