【问题标题】:Ajax call to method on controller is not workingAjax 调用控制器上的方法不起作用
【发布时间】:2015-09-22 21:03:29
【问题描述】:

我对 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 部分根本不起作用。我在这里做错了什么?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-27
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        • 2021-08-02
        • 2017-09-24
        • 1970-01-01
        • 2016-05-06
        相关资源
        最近更新 更多