2012-12-08 73 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'類構造函數的兩個參數)。如何展示他們?請檢查我編輯的問題。 –