$.connections无法读取未定义(SignalR)的集线器
本文关键字:SignalR 集线器 未定义 connections 读取 | 更新日期: 2023-09-27 18:25:41
我将尝试将数据发送到带有SignalR2的服务器。但我得到了这个错误:
未捕获的类型错误:无法读取未定义的属性"meldingenHub"
这是服务器上的C#代码:
public class MeldingenHub : Hub
{
public void Meld(string blogitem, string verdiendePunten)
{
Clients.All.BroadcastMessage(blogitem, verdiendePunten);
}
}
这里我包括了所有需要的文件:
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.1.2.min.js"></script>
<script src="~/signalr/hubs"></script>
这是在粗体代码上给出错误的客户端代码。
var medlingerHub=$.connection.meldingenHub;medlingerHub.client.broadcastMessage=函数(blogitem,verdiendePunten){$("#verdiendepunten").html(verdiendepunten);};$.connection.hub.start().done(函数(){var json={ID:parseInt(this.dataset.ID),类型:this.dataset.Type,GebruikerID:"@(Model.DeBlog.Gebruiker.Id)",Punten:parseInt(this.dataset.Punten),GestemdeGebruikerID:"@(型号:AangemeldeGebruiker)"};$.ajax({url:"../api/Stem/Toevoegen?apiKey=@Model.apiKey",类型:"PUT",数据:json,成功:函数(returnData){if(returnData.Oke==false){tooError(returnData)}其他{plaatsKleuren(returnData);medlingerHub.server.meld(data.ID,data.Punten);}}});})
注意上面的代码:当我点击按钮时,代码会执行。
我还在Startup.Auth.cs
文件中添加了这一行:
public void ConfigureAuth(IAppBuilder app)
{
app.MapSignalR();
// other code
}
我在asp.net上学习教程。有人能帮我吗?
我找到了。我使用了错误的$.connection
作用域。这是我制作的完整代码:
var punten = document.getElementsByClassName("punten-do-ajax");
var aantal = punten.length;
var conn = $.connection;
for (var i = 0; i < aantal; i++) {
punten[i].addEventListener("click", function () {
@if (Model.DeBlog.StemmenToegelaten)
{
<text>
votes(conn, this);
</text>
}
});
}
function votes(conn, sender) {
var medlingenHub = conn.meldingenHub;
medlingenHub.client.broadcastMessage = function (blogitem, verdiendePunten) {
$("#verdiendepunten").html(verdiendePunten);
};
conn.hub.start().done(function () {
var json = {
ID: parseInt(sender.dataset.id),
Type: sender.dataset.type,
GebruikerID: "@(Model.DeBlog.Gebruiker.Id)",
Punten: parseInt(sender.dataset.punten),
GestemdeGebruikerID: "@(Model.AangemeldeGebruiker)"
};
$.ajax({
url: "../api/Stem/Toevoegen?apiKey=@Model.ApiKey",
type: "PUT",
data: json,
success: function (returnData) {
if (returnData.Oke == false) {
toonError(returnData)
}
else {
plaatsKleuren(returnData);
medlingenHub.server.meld(returnData.ID, returnData.Punten);
}
}
});
});
}