在javascript中使用带有SignalR的forEach返回值(List <string>)

时间:2017-11-18 15:33:29

标签: javascript asp.net-mvc signalr signalr-hub

嗨我使用SignalR调用一个方法,我想在javascript中使用返回值作为foreach循环来创建表

中心:

 public void OrderAllSales()
        {
           List<string> tableValue = new List<string>();
             /*
                Do something and fill tableValue with 
                <tr>
                <td>....</td>
                <td>....</td> 
                </tr> 
                block for every item
              */ 
              Clients.All.SendListOfAll(tableValue);
        }

CSHTML

<table class="table">
    <thead>
    <tr style="margin-left: 10px">
        <td>Price (₺)</td>
        <td>BTC (฿)</td>
        <td>Total (₺)</td>
    </tr>
    </thead>
    <tbody id="HistoryGrid">

    </tbody>
</table>

JavaScript:

    <script>
        $(document).ready(function () {
        var bitcoinHub = $.connection.bitcoinHub;

            $.connection.hub.start().done(function () {
                $("#allSales").click(function () {
                    bitcoinHub.server.orderAllSales();
                });

                bitcoinHub.client.sendListOfAll(function (x) {
                    x.forEach(Create);
                });
            });

        function Create(item) {
            $("#HistoryGrid").prepend(item);
        }
     });
    </script>

我可以调用服务器方法,但我无法使用此返回值来创建表

1 个答案:

答案 0 :(得分:0)

我弄清楚了。

错误代码:

bitcoinHub.client.sendListOfAll(function (x) {
                    x.forEach(Create);
                });

正确代码:

 bitcoinHub.client.sendListOfAll = function (x) {
                        x.forEach(Create);
                    };

在客户端尝试catch返回方法时,错误是使用()而不是=。