2012-12-08 47 views
3

我是jQuery的新手。在我的项目,我创建了代码如下所示User一个类:显示div内的用户名列表

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。

如果上面的描述还不够,那么你可以通过我的代码here

编辑: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; } 
} 

回答

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 
    } 
}); 
+0

感谢您回应..其实我'User'类有两个参数...所以上面的代码中没有显示任何内容。上述代码中的用户由**用户名**和** ConnectionId **组成。那么如何得到两个值。我用'User.cs'编辑了我的帖子。请检查..我试过'users.Name.Length'(不工作) –

+0

我更新了答案 – davidfowl

+0

仍然这是行不通的。由于'users'有两个属性:name和connectionId('User'类构造函数的两个参数)。如何展示他们?请检查我编辑的问题。 –