我已經看到一個具有完全相同問題的主題,我已經按照答案那裏,但仍然無法做到這一點,希望你能告訴我我是什麼做錯了。我試圖從Hub發送一個對象列表(用戶名)到客戶端,但是我得到的輸出是[object Object]。這裏是我的類中,它只是1屬性:SignalR發送從Hub類到客戶端的對象列表
public class WaitingUser
{
public string waitingUsrName{ get; set; }
}
在我的HUB類我創建的列表中,我已經盡力了靜態修飾符更改爲公共,但相同的結果:
static List<WaitingUser> WaitingUseresList = new List<WaitingUser>();
我有的try/catch聲明,在這裏我把一些虛擬數據在抓用於測試的方法。已經調試它,美中不足的是正確地打來電話,我的對象是在列表中:
catch
{
// WaitingUseresList.Add(new WaitingUser { waitingUsrName = userName });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "John" });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Mike" });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Steven" });
Clients.All.UpdateWaitingUsrList(WaitingUseresList);
}
而且在我的客戶端,我有:
objHub.client.UpdateWaitingUsrList = function (WaitingUseresList) {
$('.WaitingUsrs').val('');
var list = WaitingUseresList;
for (var i = 0; i < list.length; i++) {
$('.waitingUsrs').append('<li>' + list[i] + '</li>');
}
var height = $('.waitingUsrs')[0].scrollHeight;
$('.waitingUsrs').scrollTop(height);
}
輸出是:
- [對象對象]
- [對象對象]
- [對象對象]
我跟着other topic使它工作,但仍然無法弄清楚。所以我改變了我的catch語句是這樣的:
catch
{
// WaitingUseresList.Add(new WaitingUser { waitingUsrName = userName });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "John" });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Mike" });
WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Steven" });
string list = Newtonsoft.Json.JsonConvert.SerializeObject(WaitingUseresList);
Clients.All.UpdateWaitingUsrList(list);
Clients.Caller.NoExistAdmin();
}
和我的客戶端:
objHub.client.UpdateWaitingUsrList = function (list) {
$('.WaitingUsrs').val('');
var waitingList = list;
for (var i = 0; i < waitingList.length; i++) {
$('.waitingUsrs').append('<li>' + list[i] + '</li>');
}
var height = $('.waitingUsrs')[0].scrollHeight;
$('.waitingUsrs').scrollTop(height);
}
輸出成爲this。更好,但仍不符合我的預期。我究竟做錯了什麼?提前致謝!
首先,非常感謝你,你在幫助我第二次參加我的學校項目!如果我理解正確,我應該堅持第一個版本,只是改變JavaScript。但現在我得到3次「未定義」。我也檢查了拼寫,因爲在你的行中「waitingUsrName」是用小寫字母,我的是大寫的,不知道是否有問題,但我已經嘗試過兩個同樣的結果 - 未定義3次。 –