2015-09-22 71 views
0

我對MVC相當陌生,我試圖在我的控制器中調用方法int。Ajax調用控制器上的方法不起作用

<script> 
function checkCardNumber() { 

    var content = $('#card-number').val(); 
    var url = "AccountController/CheckRegisteredCard"; 
    alert("content and URL are set"); 
    $.post(url, { cardNumber: content }, function (data) {    
     alert(data); 
    }); 
    alert("called outside of Post"); 
} 
</script> 

和這裏的C#控制器端:

[HttpPost] 
    public string CheckRegisteredCard(string cardNumber) 
    {    
     if (/*some condition*/) 
     { 
      return ""; 
     }    
     else 
     {     
      return "some string"; 
     } 
    } 

兩個警報(「內容和URL設置」,「所謂的後外」)被觸發,但AJAX的部分不工作在所有。我在這裏做錯了什麼?

回答

2

如果您的控制器類名爲AccountController,則url應爲/Account/CheckRegisteredCard

您是否檢查過瀏覽器的網絡標籤?我敢打賭有一個404錯誤。

如果javascript的這個片段位於.cshtml文件中,我建議使用@Url.Action()來獲取url字符串。

2

我會推薦使用Fiddler,並在打開ajax調用時打開它。這將告訴您(1)是否正在進行呼叫或立即失敗,以及(2)您是否從控制器收到了什麼樣的響應。同意Jason P關於url應該如何調用控制器。