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

问题描述 投票:0回答:1

我目前正在使用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会发生什么情况,在这种情况下,我是否需要在不同的页面中重新导入脚本?

c# asp.net signalr
1个回答
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>

如果您有几页需要这些脚本,我会采用这种方法。正如您所看到的,您必须在每个页面中一次又一次地重复该块。

© www.soinside.com 2019 - 2024. All rights reserved.