show the list of usernames inside a div

2019-07-05 13:05发布

问题:

I am new to jQuery. In my project, I created one Class User in which the code is as shown below:

 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();
 }

I want to show this list of values in div #showUsernames. How to do this by using jQuery?

I tried the below which is not showing anything

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

where chat.server(signalr) calls the server-side code(Chat class)..
I think the solution has nothing to do with signalr.

If the above description is not enough then you can go through my code here

EDIT: 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; }
}

回答1:

Calls to the server are async (like all javascript ajax calls). Attach a .done handler to get the results (this is all in the documentation https://github.com/SignalR/SignalR/wiki/SignalR-JS-Client-Hubs).

Change your code to be like this:

chat.server.getConnectedUsers().done(function(users) {
    for(var i = 0; i < users.length; ++i) {
        // Write javascript here to append users to the list
    }
});