2015-09-22 75 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应该如何调用控制器。