【问题标题】:Why is my simple ajax post not calling the c# web method?为什么我的简单 ajax 帖子没有调用 c# web 方法?
【发布时间】:2019-06-10 21:43:39
【问题描述】:

我有一个非常简单的 AJAX Post,它不调用 C# Web 方法。

当我在 JS 中添加断点时,它似乎到达了 AJAX 帖子,但只是退出而不进入 Web 方法。任何见解将不胜感激!

jQuery/AJAX:

$('#btnProcess').click(function () {
    for (var i = 0; i < $('#fileList li').length; i++) {
        fileName = $('#fileList li')[i].innerText.substring(2, $('#fileList li')[i].length)

        $.ajax({
            type: 'POST',
            url: 'Default.aspx/ReadFile',
            data: '{ fileName: ' + fileName + ' }',
        })
    }
})

C#/Web 方法:

[WebMethod]
    public static void ReadFile(string fileName)
    {
        string file = @"C:\Users\!user.a\" + fileName;
        Process.Start(file);

    }

【问题讨论】:

  • @RyanWilson 我从来没有像你提到的那样格式化 AJAX 帖子。尽管我确实尝试了您的解决方案,但没有成功。
  • @RyanWilson 不走运。谢谢
  • 你的 readFile 方法没有被调用?
  • @BrunoCaceiro 正确...

标签: c# jquery ajax web-services


【解决方案1】:

我通过反复试验找到了答案。在本例中,我必须使用 JSON.stringify 将数据传递给 Web 方法。下面是更新后的JS代码:

$('#btnProcess').click(function () {
    for (var i = 0; i < $('#fileList li').length; i++) {
        fileName = $('#fileList li')[i].innerText.substring(2, $('#fileList li')[i].length)
        $.ajax({
            type: 'post',
            url: 'Default.aspx/ReadFile',
            contentType: 'application/json; charset=utf-8',
            data: JSON.stringify({'fileName': fileName})
        })
    }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2014-04-08
    • 2021-08-02
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多