【发布时间】:2015-12-05 10:43:38
【问题描述】:
我将尝试使用 SignalR 2 将数据发送到服务器。但我收到此错误:
未捕获的类型错误:无法读取未定义的属性“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 medlingenHub = $.connection.meldingenHub;
medlingenHub.client.broadcastMessage = function (blogitem, verdiendePunten) {
$("#verdiendepunten").html(verdiendePunten);
};
$.connection.hub.start().done(function () {
变种 JSON = {
ID: parseInt(this.dataset.id),
类型:this.dataset.type,
GebruikerID: "@(Model.DeBlog.Gebruiker.Id)",
Punten: parseInt(this.dataset.punten),
GestemdeGebruikerID: "@(Model.AangemeldeGebruiker)"
};
$.ajax({
url: "../api/Stem/Toevoegen?apiKey=@Model.ApiKey",
类型:“PUT”,
数据:json,
成功:函数(returnData){
如果(returnData.Oke == false){
卡通错误(返回数据)
}
别的 {
plaatsKleuren(returnData);
medlingenHub.server.meld(data.ID, data.Punten);
}
}
});
});
请注意上面的代码:当我点击一个按钮时代码会执行。
我还在Startup.Auth.cs 文件中添加了这一行:
public void ConfigureAuth(IAppBuilder app)
{
app.MapSignalR();
// other code
}
我遵循asp.net 上的教程。谁能帮帮我?
【问题讨论】:
-
您是否为您的集线器尝试过
[HubName("meldingenHub")]? -
@SirwanAfifi 除非您希望集线器名称与类不同,否则不应使用
HubName属性。众所周知,这会导致一些问题,包括弄乱signalr/hubs.js文件。 -
你有没有检查过打开页面时客户端没有错误?检查客户端网络跟踪中的 404 错误(F12 打开 Chrome、Firefox 或 IE 上的开发工具)。使用开发工具中的控制台查看是否定义了
$.connection以及是否定义了集线器成员。
标签: c# jquery asp.net-mvc signalr