Как я могу обновить блок элемента с помощью SignalR?
У меня есть представление в которое я из базы данных передаю комментарии пользователя (своего рода история чата)
<div id="ChatMessageContent" class = "Chat_Message_Content">
@foreach (var item in Model)
{
<div>
@item.UserName<br/>
@item.Comment_Content<br/>
@item.Date
</div>
}
</div>
И есть код с использованием SignalR при помощи которого я добавляю сообщение в базу данных и транслирую другим пользователям
const hubConnection = new signalR.HubConnectionBuilder()
.withUrl("/sitesockets")
.build();
hubConnection.on("Send", function (message, username, date) {
// Создание элемента для никнейма
let UserNickElem = document.createElement("b");
UserNickElem.appendChild(document.createTextNode(username));
// Создание элемента для времени
let datetime = document.createElement("i");
datetime.appendChild(document.createTextNode(date))
// Создание элемента для сообщения пользователя
let elem = document.createElement("div");
elem.appendChild(UserNickElem);
elem.appendChild(document.createElement("br"));
elem.appendChild(document.createTextNode(message));
elem.appendChild(document.createElement("br"));
elem.appendChild(datetime);
var firstElem = document.getElementById("ChatMessageContent").lastChild;
document.getElementById("ChatMessageContent").insertBefore(elem, firstElem);
});
// Отправление сообщения всем пользователям
document.getElementById("sendBtn").addEventListener("click", function (e) {
let message = document.getElementById("message").value;
$.ajax({
type: "POST",
url: "@Url.Action("SaveComment", "CommonChat")",
data: {comment: message},
success: function(data){
hubConnection.invoke("Send", data.comment_Content, data.userName, data.date);
console.log(data);
},
});
});
hubConnection.start();
И у меня появилась проблема, что я собираюсь расширять блок в html коде добавляя туда автарку пользователей, ссылку на профиль и т.д. Но создавать шаблон для этого в js коде для SignalR выглядит глупо и неправильно, поэтому, я думаю, что может есть способ, как я могу просто обновить блок, вновь получив данные из бд. Прошу помочь или подсказать другое решение для данной ситуации