20

MVC4 アプリケーションで Visual Studio 2012 Ultimate RC、SignalR 0.5.1、および Jquery 1.7.2 を使用しています。

私が見た: MVC4 SignalR "signalr/hubs" 501 実装されていないエラー

しかし、それは私の問題には影響しません (IIS Express を使用してデバッグしています)。

SignalR を利用しようとすると、$.connection 変数が未定義です。私のサーバー側のコード:

[HubName("tenantHub")]
public class TenantHub : Hub
{
    ...
    void TenantChange(CrudAction action, Tenant tenant)
    {
        Clients.eventOccurred(action.ToString(), tenant);
    }
}

クライアント側:

$(function() { var test = $.connection.tenantHub; });

クライアント側SignalR/hubsが参照されており、JS コードを確認できます。エラーはスローされません。しかし、 $.connection を参照すると、Uncaught TypeError: Cannot read property 'tenantHub' of undefined. また、デフォルトのチャットの例を実行しようとしましたが、同じエラーが発生します。VS2012 で使用する場合、SignalR はサポートされていませんか、それとも私は愚かですか?

4

9 に答える 9

26

Global.asax.csBundleConfig.RegisterBundles(BundleTable.Bundles);から を削除してみて、それが役立つかどうかを確認してください。

于 2012-07-04T19:53:55.270 に答える
9

[HubName("tenantHub")]クラスを休んでみてください。私がそこにそれらを持っていたら、私のものは機能しません。"Hubs"また、ハブをプロジェクトのルートにあるフォルダーに入れてみてください。

于 2012-07-05T13:28:36.430 に答える
5

これは通常、jQuery を 2 回ロードしたことが原因です。通常、フッターに jQuery をロードする習慣があります。signalr は不平を言い、signalr-x.js の前に jQuery ライブラリを含めるように強制するためです。

signalr-x.js の前に jQuery を含めることができます。また、jQuery プラグインを含めるフッターで次のようなことを行って、2 回読み込まれるのを避けることができます。

<script type="text/javascript">
    !window.jQuery && document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"><\/script>');
    !window.jQuery && document.write('<script src="/public/js/vendor/jquery-1.9.1.min.js"><\/script>');
</script>

お役に立てれば。:)

于 2013-04-03T22:20:25.220 に答える
3

VS2012 RTM でも同じ問題がありました。

問題は、最初に BundleConfig.cs にシグナルを追加し、それが機能することを期待していたことです。しかし、ブラウザで「ソースの表示」を使用すると、jquery.js の前に signalr.js が含まれていることに気付きました。ページ上部にsignalr.js、ページ下部にjqueryが含まれていました。

BundleConfig を少しいじった後、jquery.js の後に signalr.js が組み込まれ、今では signalr が魅力的に機能します!

于 2012-08-26T19:33:16.467 に答える
2

RouteTable.Routes.MapHubs();最初のアイテムとしてApplication_Start()着てみてくださいGlobal.asax.cs

ここにサンプルコード/プロジェクトがあります

于 2013-03-26T09:53:49.050 に答える
0

ジョンとは逆に、

signalr/hubs 宣言に / を追加する必要がありました

すなわち。

<script src="signalr/hubs" type="text/javascript"></script>

なりました

<script src="/signalr/hubs" type="text/javascript"></script>
于 2016-09-04T21:08:21.797 に答える