在标准ASP.Net Web应用程序(非MVC)中正确实现SignalR

时间:2018-09-19 04:01:08

标签: c# asp.net signalr

当前,我正在使用site.master页面来开发常规Web应用程序。

我注意到,在实施SignalR时,我们必须导入以下脚本

<script src="Scripts/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
<script src="signalr/hubs"></script>

但是,考虑到连接将多次启动,将脚本放置在site.master中是一种好习惯。

是否有更好的方法将脚本导入到更通用的位置,该位置只会启动一次集线器?还是将它留在site.master页面中根本没有关系吗?

此外,如果我有不使用site.master的不同页面会发生什么情况,在这种情况下,我需要在不同页面中重新导入脚本吗?

1 个答案:

答案 0 :(得分:0)

想到两种方法。

实现嵌套母版页。 See Here您可以在内部母版页中添加脚本,并且仅将此母版页用于需要这些其他脚本的页面。如果有很多需要此脚本的页面(但不是全部),这是一种“好的”方法。

您还可以在主模板中创建内容占位符。这样。

<asp:ContentPlaceHolder ID="cphScripts" runat="server">
</asp:ContentPlaceHolder>

然后在要添加其他脚本的页面中,可以添加如下脚本。

<asp:Content ID="ContentScripts" ContentPlaceHolderID="cphScripts" runat="server">
    <script src="Scripts/jquery-1.10.2.min.js"></script>
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    <script src="signalr/hubs"></script>
</asp:Content>

如果您需要这些脚本的页面很少,我会采用这种方法。如您所见,您必须在每一页中一次又一次地重复该块。