3

我有一个 MVC 4 应用程序,它有一个注册页面。

集线器的代码如下:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SignalR.Hubs;

[HubName("messageHub")]
public class MessageHub : Hub
{
    /// <summary>
    /// Broadcast the message to all clients
    /// </summary>
    /// <param name="message">message to be broadcasted</param>
    public void Broadcast(string message, string messagetype, string messagetitle)
    {
        this.Clients.showMessage(message, messagetype, messagetitle);
    }
    public void Getsubscription()
    {

    }
}

同样,JS hub 代码是:-

<script type="text/javascript" src="@Url.Content("~/Scripts/json2.js")"></script>
<script src= "@Url.Content("~/Scripts/jquery.signalR-0.5.2.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<h2>Index</h2>
<script type="text/javascript">
    $(document).ready(function () {
        //Initialize hub
        var hub = $.connection.messageHub;

        // hub.start();
        $.connection.hub.start();
        //Append event to Button
        //hub.broadcast("c","b","a");

    });

</script>

现在,运行后得到 $.connection.messageHub as undefined

调试模式截图

其次,我的 chrome 网络显示;- 网络-Chrome

第三,当单击信号器/集线器的启动器时,我得到未实现错误:- 在此处输入图像描述

我尝试更改脚本的 URL,也作为 IIS 运行,但无法正常工作。如果我将我的脚本保存在 .cshtml(视图)中并更改 -> 使用本地 IIS Web 服务器,它的工作正常任何帮助。!

4

2 回答 2

3

@Scripts.Render("~/bundles/modernizr")

@Scripts.Render("~/bundles/jquery")

在布局部分对此部分进行了评论,并为我工作。

于 2012-08-19T18:16:40.203 回答
1

我发现/signalr/hubs在捆绑配置中添加引用不起作用,因为它是在运行时生成的,而捆绑发生在编译时。
所以我这样做了:
1-在我需要参考的每个视图中创建了一个这样的部分signalr/hubs

    @section SignalRScripts{
    <script src="/signalr/hubs"></script>
    }  

2-在我的布局文件中渲染所有其他脚本后,渲染了这个部分:

    @Scripts.Render("~/js")  
    @RenderSection("SignalRScripts", required: false)  
    @RenderSection("Scripts", required: false) 

然后它工作正常。

于 2014-02-20T14:17:21.773 回答