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

本文关键字:Ajax 调用 不起作用 方法 控制器 | 更新日期: 2023-09-27 18:13:56

我是很新的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";
        }
    }

两个警报("内容和URL设置","调用外的帖子")被触发,但ajax部分不工作。我哪里做错了?

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

如果控制器类名为AccountController,则url应为/Account/CheckRegisteredCard

您是否检查了浏览器的网络选项卡?我敢打赌是404错误。

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

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