3

私はjQueryが初めてです。私のプロジェクトではUser、コードが次のようなクラスを1 つ作成しました。

 static ConcurrentDictionary<string, User> _users = new ConcurrentDictionary<string, User>();
 //
 //  some function to add values to _users list
 //
 public List<User> GetConnectedUsers()
 {
      return _users.Values.ToList();
 }

divこの値のリストを#showUsernamesで表示したいと思います。jQueryを使用してこれを行う方法は?

何も表示されていない以下を試しました

    /*display your contacts*/
    $('#showUsernames').append(function(){
        chat.server.getConnectedUsers();
    });

ここでchat.server(signalr) はサーバー側のコード (Chat クラス) を呼び出します。
解決策は signalr とは関係ないと思います。

上記の説明では不十分な場合は、ここで私のコードを確認できます

編集: User.cs

public class User
{
    public User(string ConnID, string Username)
    {
        Name = Username;
        ConnectionID = ConnID;
    }
    public string Name { get; set; }
    public string ConnectionID { get; set; }
}
4

1 に答える 1

3

サーバーへの呼び出しは非同期です (すべての JavaScript ajax 呼び出しと同様)。.done ハンドラーをアタッチして結果を取得します (これはすべてドキュメントhttps://github.com/SignalR/SignalR/wiki/SignalR-JS-Client-Hubsにあります)。

コードを次のように変更します。

chat.server.getConnectedUsers().done(function(users) {
    for(var i = 0; i < users.length; ++i) {
        // Write javascript here to append users to the list
    }
});
于 2012-12-08T11:52:01.490 に答える