SignalR发送对象 - 新手

时间:2015-06-05 10:39:44

标签: signalr

使用Signal R,如果尝试发送对象,传递模型的语法是什么?

private async void FormLoaded(object sender, RoutedEventArgs e)
{
    //Connection stuff...
    Proxy.On("sendHello", () => OnSendDataConnection(ModelBuilder()));
}

private void OnSendDataConnection(ConnectionModel model)
{
    Dispatcher.Invoke(DispatcherPriority.Normal,model?????)
    this.Dispatcher.Invoke((Action)(LoadW));
}

1 个答案:

答案 0 :(得分:3)

查看问题(文本,而不是代码)我理解您正在尝试将Complex对象发送到JS端并在那里使用它?这是对的吗?

在这种情况下,解决方案应该很简单:

来自ASP.NET.SignalR site

  

您可以指定返回类型和参数,包括复杂类型   和数组一样,就像在任何C#方法中一样。您收到的任何数据   在参数或返回调用者之间进行通信   客户端和服务器使用JSON, SignalR处理绑定   复杂对象和对象数组自动

示例C#:

    public void SendMessage(string name, string message)
    {
        Clients.All.addContosoChatMessageToPage(new ContosoChatMessage() { UserName = name, Message = message });
    }

JS:

    var contosoChatHubProxy = $.connection.contosoChatHub;
    contosoChatHubProxy.client.addMessageToPage = function (message) {
        console.log(message.UserName + ' ' + message.Message);
    });

ContosoChatMessage在哪里:

   public class ContosoChatMessage
   {
       public string UserName { get; set; }
       public string Message { get; set; }
   }

(请参阅示例......)

所以基本上,在JS收到“模型”时,您应该能够使用'model.XY',其中XY是模型复杂对象的成员。

我希望它有所帮助。