对控制器上的方法的Ajax调用不起作用

时间:2015-09-22 21:03:30

标签: javascript c# jquery ajax model-view-controller

我对MVC很陌生,我试图在我的一个控制器中调用一个方法。

<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";
        }
    }

两个警报(&#34;内容和网址已设置&#34;,&#34;在帖子&#34之外调用;)正在被触发,但ajax部分根本不起作用。我在这做错了什么?

2 个答案:

答案 0 :(得分:2)

如果您的控制器类名为AccountController,则网址应为/Account/CheckRegisteredCard

您是否检查过浏览器的网络标签?我打赌有一个404错误。

如果这个javascript片段在.cshtml文件中,我建议使用@Url.Action()来获取网址字符串。

答案 1 :(得分:2)

我建议使用Fiddler并在进行ajax调用时将其打开。这将告诉您(1)是否正在进行呼叫或是否立即失败,以及(2)您从控制器接收的是什么样的响应。同意Jason P关于url应该如何调用控制器。