我正在做一个 MVC4 Web 应用程序并决定使用信号器,只有一件事我不明白,我可能做错了什么......
我有一个带有调用 HomeController 的 ActionLink 的页面(主页)。在控制器中我有这个:
家庭控制器:
public class HomeController : Controller
{
private IHubContext context;
public HomeController()
{
context = GlobalHost.ConnectionManager.GetHubContext<HomeHub>();
}
...
public ActionResult Scan()
{
context.Clients.All.StartedScanning();
}
}
家庭中心:
public class HomeHub : Hub
{
public void StartedScanning()
{
Clients.All.setStatusMessage("Scanning started...");
}
}
索引.cshtml
...
@Html.ActionLink("Scan for media", "scan", null, new
{
@class = "scanActionLink"
})
...
@section scripts
{
<script src="~/Scripts/jquery.signalR-1.1.2.js"></script>
<script src="~/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var home = $.connection.homeHub;
home.client.setStatusMessage = function (message) {
alert(message);
}
// Start the connection.
$.connection.hub.start().done(function () {
});
})
</script>
}
实际上代码执行得很好,但只在其他窗口中而不是在主窗口中。这正常吗?
我希望我已经足够清楚了。
谢谢。