Как я могу обновить блок элемента с помощью 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 выглядит глупо и неправильно, поэтому, я думаю, что может есть способ, как я могу просто обновить блок, вновь получив данные из бд. Прошу помочь или подсказать другое решение для данной ситуации


Ответы (0 шт):