ASP.NET Core 2.1 SignalR не определен - PullRequest
0 голосов
/ 24 января 2019

Это мой чат javascript

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

connection.on("ReceiveMessage", function (message) {
    var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    var encodedMsg = msg;
    var li = document.createElement("li");
    li.textContent = encodedMsg;
    document.getElementById("Messages").appendChild(li);
});

connection.start().catch(function (err) {
    return console.error(err.toString());
});

document.getElementById("Send").addEventListener("click", function (event) {
    var message = document.getElementById("Message").value;
    connection.invoke("SendMessage", message).catch(function (err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

Это ошибка, которую я получаю, когда запускаю страницу с помощью ввода в чате:

Uncaught ReferenceError: signalR не определено на chat.js: 3

строка 3 в chat.js:

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

Я загрузил клиентскую библиотеку SignalR из Visual Studio Add Client Side Library. Теперь у меня есть файл с именем jquery.signalR.js, и это библиотека Javascript 2.4.0 ASP.NET SignalR.

Однако эта ошибка не исчезла, и по какой-то причине я не могу продолжить.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Я вижу, что ваше приложение ASP.NET Core , но вы используете jquery.signalR.js, что на самом деле ASP.NET MVC . SignalR клиент для ASP.NET Core равен signalr.js, который не зависит от jQuery. Вы можете загрузить signalr.js для ASP.NET Core с NPM :

Вы также можете загрузить с помощью клиентской части Visual Studio Диспетчер библиотек (LibMan) следующим образом:

  • В Solution Explorer , щелкните правой кнопкой мыши проект и выберите Добавить> Клиентская библиотека.

  • В диалоговом окне Добавить клиентскую библиотеку для поставщика выберите unpkg.

  • Для библиотеки введите @aspnet/signalr@1 и выберите последнюю версию
    это не предварительный просмотр.

  • Должен изменить Целевое местоположение на wwwroot/lib/signalr, если это что-то еще, содержащее @ в пути. В противном случае он не будет загружен.

enter image description here

Подробнее: Начало работы с ASP.NET Core SignalR

0 голосов
/ 24 января 2019

Используете ли вы это в своем HTML?

<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>

От: https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr

Редактировать:

Не забудьте добавитьзависимости jquery, если вы используете jquery-signalr

<!--Reference the jQuery library. -->
<script src="Scripts/jquery-3.1.1.min.js" ></script>
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
...