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

时间:2016-10-06 09:48:25

标签: jquery ajax asp.net-mvc signalr

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

 $('#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 个答案:

答案 0 :(得分:0)

我看到两种可能的情景

  1. resultJSON而非string,因此请确保您将string传递给SignalR,否则将无法触发:
  2. chat.server.setResult(JSON.stringify(result));

    1. 如果以上操作不起作用,则问题是与hub的连接。要确保没有数据类型不匹配,请调用没有参数的服务器函数,看看它是否被命中:
    2. chat.server.setResult();

      public void SetResult()

      更新后,我确信您将JSON传递到您的中心,但它期待string ...所以请选择#1

相关问题