Я видел тему с той же проблемой, и я следил за ее ответом, но все равно не могу выполнить эту работу, надеюсь, что вы можете сказать мне, что я делать неправильно. Я пытаюсь отправить список объектов (имена пользователей) из концентратора на клиент, но я получаю вывод [object Object]. Вот мой класс только с 1 собственностью в нем:SignalR отправляет список объектов из класса Hub клиенту
public class WaitingUser
{
public string waitingUsrName{ get; set; }
}
В моем классе хаба я создаю список, я попытался изменить модификатор статического для общественного, но тот же результат:
static List<WaitingUser> WaitingUseresList = new List<WaitingUser>();
у меня есть метод с попробовать/поймать заявления, в котором я поставил некоторые фиктивные данные в улове для испытания. Уже отлажена его, улов правильно называется и мои объекты в списке:
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
{
// 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 раза. –