Javascript 无法读取属性';反轮毂';未定义的

Javascript 无法读取属性';反轮毂';未定义的,javascript,jquery,asp.net-mvc,signalr,signalr-hub,Javascript,Jquery,Asp.net Mvc,Signalr,Signalr Hub,我试图用信号器制作一个简单的用户计数器,但由于未知原因,我在控制台中遇到了这个错误。我对signalR和asp.net非常陌生,但我所拥有的对我来说是有意义的,我不知道为什么会出现错误。有人能帮我解决这个问题,并解释为什么会这样吗 下面是索引视图中的代码 <div class="row"> Number of online users <strong id="counter"></strong> <script src="@Url.Content("~/

我试图用
信号器
制作一个简单的用户计数器,但由于未知原因,我在控制台中遇到了这个错误。我对signalR和asp.net非常陌生,但我所拥有的对我来说是有意义的,我不知道为什么会出现错误。有人能帮我解决这个问题,并解释为什么会这样吗

下面是索引视图中的代码

<div class="row">
Number of online users <strong id="counter"></strong>
<script src="@Url.Content("~/Scripts/jquery-3.1.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.signalR-2.2.1.min.js")"></script>
<script src="@Url.Content("~/signalr/hubs")"></script>

<script>
    $(function () {
        var counterHub = $.connection.counterHub;
        $.connection.hub.start().done(function () {

        });
        counterHub.client.UpdateCount = function (count) {
            $("#counter").text(count);
        }
    });

</script>
和Startup.cs:

public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();

            ConfigureAuth(app);

        }
    }

您的聊天文件是否位于应用程序的根目录中

我认为您的页面唯一没有连接到中心代理javascript文件:

ASP.NET信号器JavaScript库v1.0.0

此文件包含一些连接到集线器的方法,包括:

$.hubConnection.prototype.createHubProxies = function () {
    var proxies = {};
    this.starting(function () {
        // Register the hub proxies as subscribed
        // (instance, shouldSubscribe)
        registerHubProxies(proxies, true);

        this._registerSubscribedHubs(); .......
缺少此方法导致了您的错误:

无法读取未定义的属性“counterHub”

因为它无法连接到hob并创建名为计数器集线器的对象

请测试:在浏览器的另一个选项卡中加载应用程序后,测试此url:

你的应用程序Url/信号器/集线器

在本地主机中是这样的:


看看你是否得到了javascript文件。如果不是,我建议你开始另一个项目(如果是测试)。

不知道为什么,但这最终让它对我起了作用。我刚刚用
@节脚本
包围了脚本标记:

    @section scripts{
    <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>

<script src="~/signalr/hubs"></script>
<script>
        $(function () {
            var myHub = $.connection.counterHub;
            $.connection.hub.start().done(function () {

            });
            myHub.client.UpdateCount = function (count) {
                $("#counter").text(count);
            }
        });

</script>
    }
@节脚本{
$(函数(){
var myHub=$.connection.counterHub;
$.connection.hub.start().done(函数(){
});
myHub.client.UpdateCount=函数(计数){
$(“#计数器”)。文本(计数);
}
});
}

您是否在其他地方使用
counterHub
?不,我在其他地方不使用它。我将所有可能遇到的代码都发布到了您的visual studio版本是什么?@FarzinKanzi 2015社区版请在您的全局文件中测试此代码:hubRoute=RouteTable.Routes.MapHubs();与之前相同(用红色下划线),悬停时显示:“SignalErrorOuteeExtensions.MapHubs(RouteCollection)”已过时:“在owin启动类中使用IAppBuilder.MapSignalR。”;使用Microsoft.AspNet.signal.Hubs;我引用了hub类中的那些,我相信这已经足够了。
    @section scripts{
    <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>

<script src="~/signalr/hubs"></script>
<script>
        $(function () {
            var myHub = $.connection.counterHub;
            $.connection.hub.start().done(function () {

            });
            myHub.client.UpdateCount = function (count) {
                $("#counter").text(count);
            }
        });

</script>
    }