Fehler beim Laden der Hubs. Stellen Sie sicher, dass Ihre Hub-Referenz korrekt ist, z. <script src = '/ signalr / js'> </ script>

Es gibt zwei Seiten: Login.aspx und Profile.aspx, die mit HTML und AngularJS erstellt wurden.

Die login.aspx-Seite verwendet ng-view, um die Vorlage für Login-view oder Signup View abzurufen. Der verwendete Code lautet:

<head>
    <title></title>
    <base href="/Login.aspx" />
    <link href="StyleSheet/Login_css.css" rel="stylesheet" />
    <script src="JscriptVendors/angular.min.js"></script>
</head>
<body ng-app="JouralApp_login">
    <div ng-view></div>

    <script src="Jscript_Angular/Model.js"></script>
    <script src="Jscript_Angular/Controllers/LoginPageController.js"></script>
    <script src="JscriptVendors/angular-route.min.js"></script>
    <script src="JscriptVendors/angular-animate.min.js"></script>
    <script src="JscriptVendors/jquery.min.js"></script>
</body>

Die Ansichten werden im Vorlagenordner mit folgenden Namen gespeichert: loginTemplate.html und signupTemplate.html.

Das für die Bearbeitung der login.aspx-Seite verwendete Modul lautet:

var app_login = angular.module('JouralApp_login', ['ngRoute','ngAnimate']);
var app_profile = angular.module('GameApp', []);

app_login.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider
        .when('/login', {
            templateUrl: 'Jscript_Angular/Templates/loginTemplate.html',
            controller: 'loginController'
        })
        .when('/signup', {
            templateUrl: 'Jscript_Angular/Templates/signupTemplate.html'
        }).otherwise({
            redirectTo:'/login'
        })
}]);

Nun habe ich meine Profile.aspx erstellt, mit dem HTML-Code:

<head>
    <script src="Scripts/angular.js"></script>
</head>
<body ng-app="app_profile">    
    <div ng-controller="chatController">
        <div>
            <div ng-repeat="chat in messages">{{chat}}</div>
            <div>
                <input type="text ng-model="message" />
                <input type="button" ng-click="newMessage()" />
            </div>
        </div>
    </div>
    <script src="Jscript_Angular/Model.js"></script>
    <script src="Scripts/jquery-1.6.4.js"></script>
    <script src="Scripts/jquery.signalR-2.2.0.js"></script>
    <script src="signalr/hub"></script>
    <script src="Jscript_Angular/Controllers/ChatController.js"></script>
</body>

Alles funktionierte einwandfrei, bis ich versuche, SignalR in mein Projekt zu integrieren. Ich habe zwei Klassen gemacht:

KLASSE 1

[assembly: OwinStartup(typeof(Startup))]

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

KLASSE 2

public class ChatHub : Hub
{
    public void SendMessage(string name, string message)
    {
        Clients.All.broadcastMessage(name, message);
    }        
}

Ich habe auch den folgenden Controller erstellt, um auf meine Javascript-Funktion zuzugreifen:

app_profile.controller('chatController',['$scope', function ($scope) {
    $scope.name = 'Guest';
    $scope.message = '';
    $scope.messages = [];
    $scope.chatHub = null;


    $scope.chatHub = $.connection.chatHub;
    $.connection.hub.start();

    $scope.chatHub.client.broadcastMessage = function (name, message) {
        var newMessage = name + "    " + message;

        $scope.messages.push(newMessage);
        $scope.$apply();
    };
    $scope.newMessage = function () {
        $scope.chatHub.server.sendMessage($scope.name, $scope.message);
        $scope.message = '';
    }
}]);

Wenn ich jetzt versuche, auf meine Profilseite zuzugreifen, wird der Fehler angezeigt

angular.js: 13550 Fehler: SignalR: Fehler beim Laden der Hubs. Stellen Sie sicher, dass Ihre Hub-Referenz korrekt ist, z. .

Auch wenn ich versuche zuzugreifen,localhost: 5136 / signalr / hubs, es Weiterleitungen me zu meiner Anmeldeseite, d. h .:localhost: 5136 / login

Ich denke, das Problem ist, dass es nicht auf den Hub zugreifen kann, den ich erstellt habe, weil ich AngularJS für die Anmeldeseite verwendet habe.

Bitte helfen Sie mir, die Lösung zu finden.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage