Я изучаю ASP.NET Core SignalR. Я написал базовую программу в рамках MVC, которая взаимодействует с базой данных SQLite. Эта программа позволяет пользователю выполнять операции CRUD над базой данных. Я ввел в программу концентратор SignalR. Сервер периодически получает список записей из базы данных и отправляет клиенту функцию hub SendAsync. В клиенте-концентраторе Javascript я пытаюсь проанализировать (и отобразить) полученные сообщения. Все работает (получение списка элементов из базы данных, отправка через концентратор), кроме доступа к элементу элемента, я получаю сообщение undefined , хотя из базы данных извлекаются три элемента, для каждого элемента назначены действительные значения ,
Схема для базы данных (в папке Models ):
public class IenState
{
public int Id { get; set; }
public ulong NetId { get; set; }
public ushort NodeId { get; set; }
}
Отправка сообщений от Север-конец концентратора:
var ienStates = from m in dbcontext.IenState select m;
var listdb = await ienStates.ToListAsync(); //here 3-items recovered
await hubContext.Clients.All.SendAsync("IenStateDb", listdb);
Javascript клиент-концентратор (с именем IenStateHub.js ):
const connection = new signalR.HubConnectionBuilder()
.withUrl("/ienStateHub")
.configureLogging(signalR.LogLevel.Information)
.build();
connection.start().then(function () {
document.getElementById("p_nets").innerHTML = "IenStateHub is 'CONNECTED'";
});
connection.on("IenStateDb", function(message){
var dbitem;
for (dbitem in message)
{
document.getElementById("p_nets").innerHTML = "NetId:" + dbitem.NetId;
}
});
Где ' p_nets ' - это HTML-элемент в ' Index.cshtml '. Хаб-клиент (IenStateHub.js) добавляется в конец Index.cshtml следующим образом:
<script src="~/lib/signalr/signalr.js"></script>
<script src="~/js/IenStateHub.js"></script>
Любая помощь для решения этой проблемы анализа будет принята с благодарностью.