我有一个网络应用程序,我整合SignalR聊天,但我收到错误 “无法获取属性'chatHub'的值:对象为null或未定义”
以下是详细信息......
ASP.Net UserControl中的
<link rel="stylesheet" href="/Css/JQueryUI/themes/base/jquery.ui.all.css">
<link href="../Classes/SignalRChat/Css/ChatStyle.css" rel="stylesheet" />
<link href="../Classes/SignalRChat/Css/JQueryUI/themes/base/jquery.ui.all.css" rel="stylesheet" />
<link href="Css/gradients.css" rel="stylesheet" />
<link href="Css/MainCss.css" rel="stylesheet" />
<script src="Scripts/ui/jquery.ui.core.js"></script>
<script src="Scripts/ui/jquery.ui.widget.js"></script>
<script src="Scripts/ui/jquery.ui.mouse.js"></script>
<script src="Scripts/ui/jquery.ui.draggable.js"></script>
<script src="Scripts/ui/jquery.ui.resizable.js"></script>
<script src="Scripts/jquery.signalR-2.0.2.min.js"></script>
<script src="Scripts/jquery-1.8.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.0.2.min.js"></script>
<script src="signalr/hubs"></script>
在javascript中
<script type="text/javascript">
$(function () {
setScreen(false);
// Declare a proxy to reference the hub.
var chatHub = $.connection.chatHub; //THIS GETS THE ERROR
在我的创业公司
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Akr.Web.Classes.SignalRChat.SignalRChatStartup))]
namespace Akr.Web.Classes.SignalRChat
{
public class SignalRChatStartup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
在我的中心
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace Akr.Web.Classes.SignalRChat
{
[CLSCompliant(false)]
public class ChatHub : Hub
{
//... some methods...
}
}
我怎样才能让它发挥作用? 感谢
答案 0 :(得分:1)
确保在jQuery脚本之后只包含一次jquery.signalR - * .min.js脚本。
还要确保服务器使用“signalr / hubs”中的脚本进行响应。如果你得到404,也许你应该从“/ signalr / hubs”加载脚本(注意非相对路径)。
最后,确保您的内联JS显示在HTML中的jQuery / SignalR相关脚本之后。
以下是一些疑难解答文档:http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting#other
答案 1 :(得分:-1)
我认为解决方案可能与Cannot read property 'chatHub' of undefined SignalR Hub上发布的解决方案相同,请检查您是否有app.MapSignalR();在Startup.cs类中。查看更多here