私は現在、MVC3プロジェクトに取り組んでおり、SignalRを使い始めました。SignalRを_Layout.cshtmlの内部で動作させるにはどうすればよいですか?
私はいくつかのデモに従ってきましたが、私のコードが\ Views \ Shared_Layout.cshtmlの中に入っていると動作しないようです。私はいつも"データを送信する前に接続を開始する必要があります。"エラー。
以下の私のコードを参照してください。
私のクラス:
[HubName("notificationsHub")]
public class NotificationsHub : Hub
{
public void updateServer()
{
Clients.updateClient("boom");
}
}
_Layout.cshtml内部マイスクリプト:
$(function(){
var signalR = $.connection.notificationsHub;
signalR.updateClient = function (message) {
alert(message);
};
$("#open").click(function() {
signalR.updateServer();
});
$.connection.hub.start(function() {
alert("Connected");
});
});
のスクリプト参照:
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.6.4.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.signalR.js")"></script>
<script type="text/javascript" src="@Url.Content("~/signalr/hubs")"></script>
My NotificationsHubクラスは、My Viewsと同じディレクトリレベルのNotificationsHubというフォルダ内にあります。
私はこれを.htmlファイルで試しました。これは完全に動作します($ connection.hub.startのアラートコールバックを取得します)。
私はここで何が欠けていますか?奇妙な
おかげ
すべてのことがわかりました。すべてのスクリプトリファレンスが正しく解決されていることと、接続エラーがないことを確認します。 –
ありがとう@ Gary.S、私はそれが原因で何かを深く見なければならないと思う。 – dmc