Asp.net mvc 3 Asp.net MVC 3中的信号器:未定义集线器

Asp.net mvc 3 Asp.net MVC 3中的信号器:未定义集线器,asp.net-mvc-3,signalr,signalr-hub,signalr.client,Asp.net Mvc 3,Signalr,Signalr Hub,Signalr.client,我是《信号员》的新手。我正在尝试这样做。 我无法通过NuGet下载和安装软件包,因为我的工作中有一个代理拒绝访问。所以我自己在项目中包含了de DLL和脚本 我的查看代码如下: <h2>@ViewBag.Message</h2> <input type="button" id="bookButton" value="Book flight" /> <br /> <b>Status:</b>&nbsp;&nbs

我是《信号员》的新手。我正在尝试这样做。
我无法通过NuGet下载和安装软件包,因为我的工作中有一个代理拒绝访问。所以我自己在项目中包含了de DLL和脚本

我的查看代码如下:

<h2>@ViewBag.Message</h2>
<input type="button" id="bookButton" value="Book flight" />
<br />
<b>Status:</b>&nbsp;&nbsp;&nbsp;<span id="msg"></span>
<hr />
<input type="button" id="percButton" value="Process pending emails" />
<div id="bar" style="border: #000 1px solid; width: 300px;">
</div>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/gauge-bar.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.6.4.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/json2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalr.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/simple-gauge-bar.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        var bookingHub = $.connection.bookingHub;
        $("#percButton").click(function () {
            bookingHub.processPendingEmails();
        });

        $("#bookButton").click(function () {
            bookingHub.bookFlight("fco", "jfk");
        });

        bookinghub.updategaugebar = function (perc) {
            $("#bar").html(gaugebar.generate(perc));
        };
        bookinghub.displaymessage = function (message) {
            $("#msg").html(message);
        };

        $.connection.hub.start();
    });
</script>
当我运行这个项目时,我注意到bookingHub是未定义的,此时我有空引用错误

我做错了什么来得到这个错误


提前感谢。

您是否缺少该属性

[HubName("bookingHub")]
在你的BookingHub班上?e、 g

 [HubName("bookingHub")]
 public class BookingHub : Hub
{
    public void Send(String message)
    {

        // Call the addMessage method on all clients.
        Clients.displayMessage(message);
    }
...

将Global.asax添加到web应用程序,并将其添加到Global.ajax.cs:

namespace SampleWebApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.MapHubs();
        }
    }
}

请参见

在浏览器中访问/signal/hubs时会得到什么?检查页面的源代码,查看是否正在加载所有库。我曾经遇到过同样的问题,因为我需要在global.asax中重新映射集线器路线(如果您向信号器注入,这可能就是问题所在)
namespace SampleWebApplication
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.MapHubs();
        }
    }
}