从 AJAX 获取数据并将它们发送到 SignalR Hub

Get data from AJAX and send them to SignalR Hub

美好的一天 我有以下代码:

 $('#ElementId').click(function () {            
            $.ajax({
            type: "POST",
            url:  "URL",
            data: {//DATA }
        })
                .done(function (result) {
                    FillList(result);
                });
}

    function FillList(result) 
    {
    var chat = $.connection.chatHub;
    chat.server.setResult(result);   
    }

我想从 AJAX 调用中获取数据并将它们传递给 SignalR,但我就是无法让它工作。 AJAX 正常工作,但当我尝试将数据发送到 SignaR Hub 时,没有任何反应。 如有任何帮助,请提前致谢

更新

尽管当我在没有 AJAX 的情况下自行调用函数时上面的方法不起作用然后它起作用了:

    $('#ElementId').click(function () {  
      FillList("Test");
     }

更新#2 这就是有问题的函数在 SIgnalR

中的样子
public void SetResult(string TestJSON)
    {
        try
        {
            if (!String.IsNullOrEmpty(TestJSON))
            {
             //TODO       
            }                
        }
        catch (Exception ex)
        {
            throw ex
        }

    }

我看到两种可能的情况

  1. resultJSON 而不是 string,因此请确保将 string 传递给 SignalR,否则它不会触发:

chat.server.setResult(JSON.stringify(result));

  1. 如果上述方法不起作用,则问题出在与您的 hub 的连接上。为确保没有数据类型不匹配,调用不带参数的服务器函数并查看它是否被命中:

chat.server.setResult();

public void SetResult()

在你的 UPDATE 之后,我确信你正在将 JSON 传递给你的集线器,但它期待 string... 所以去# 1