2016-10-28 12 views
0

asp.netでsignalr chatroomを作成しようとしています。次のエラーが表示されます。 "Uncaught TypeError:未定義の 'chatHub'プロパティを読み取ることができず、プロンプトが表示されません。 このチュートリアルhttps://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalrに続いて、スタートアップクラスを変更しました。SignalRチャットはハブに接続していませんか?

Startup.cs ..

using Microsoft.AspNet.SignalR; 
using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartupAttribute(typeof(MyTrainer.Startup))] 
namespace MyTrainer 
{ 
    public partial class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      ConfigureAuth(app); 

      var config = new HubConfiguration(); 

      config.EnableDetailedErrors = true; 
      config.EnableJavaScriptProxies = true; 

      app.MapSignalR("/signalr", config); 
     } 
    } 
} 

マイビュー(ChatRoom.cshtml)...

@{ 
    ViewBag.Title = "ChatRoom"; 
} 

<!DOCTYPE html> 
<html> 
<head> 
    <title>SignalR Simple Chat</title> 
    <style type="text/css"> 
     .container { 
      background-color: #99CCFF; 
      border: thick solid #808080; 
      padding: 20px; 
      margin: 20px; 
     } 
    </style> 
</head> 
<body> 
    <div class="container"> 
     <input type="text" id="message" /> 
     <input type="button" id="sendmessage" value="Send" /> 
     <input type="hidden" id="displayname" /> 
     <ul id="discussion"></ul> 
    </div> 
    <!--Script references. --> 
    <!--Reference the jQuery library. --> 
    <script src="../Scripts/jquery-1.11.3.min.js"></script> 
    <!--Reference the SignalR library. --> 
    <script src="../Scripts/jquery.signalR-2.2.1.min.js"></script> 
    <!--Reference the autogenerated SignalR hub script. --> 
    <script src="../signalr/hubs"></script> 
    <!--Add script to update the page and send messages.--> 
    <script type="text/javascript"> 
     $(function() { 
      // Declare a proxy to reference the hub. 
      var chat = $.connection.chatHub; 
      // Create a function that the hub can call to broadcast messages. 
      chat.client.broadcastMessage = function (name, message) { 
       // Html encode display name and message. 
       var encodedName = $('<div />').text(name).html(); 
       var encodedMsg = $('<div />').text(message).html(); 
       // Add the message to the page. 
       $('#discussion').append('<li><strong>' + encodedName 
        + '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>'); 
      }; 
      // Get the user name and store it to prepend to messages. 
      $('#displayname').val(prompt('Enter your name:', '')); 
      // Set initial focus to message input box. 
      $('#message').focus(); 
      // Start the connection. 
      $.connection.hub.start().done(function() { 
       $('#sendmessage').click(function() { 
        // Call the Send method on the hub. 
        chat.server.send($('#displayname').val(), $('#message').val()); 
        // Clear text box and reset focus for next comment. 
        $('#message').val('').focus(); 
       }); 
      }); 
     }); 
    </script> 
</body> 
</html> 

マイハブ...

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.AspNet.SignalR; 

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

マイコントローラー..

public ActionResult ChatRoom() 
{ 
    return View(); 
} 

ありがとうございました!

答えて

0

私はレイアウトページで、信号rのスクリプトを使いこなしていたfullcalendarスクリプトをレンダリングしていました

関連する問題