在 ASP.NET 页面中包含脚本的正确方法

2023-11-22

我有一个 ASP.NET 应用程序,它混合使用了由不同背景的几位开发人员编写的 ASP.NET AJAX(包括 UpdatePanel)和 jQuery。

一些包含在 ScriptManager 本身中的脚本<asp:ScriptManager><Scripts><asp:ScriptReference....,而其他人则使用Page.ClientScript.RegisterClientScriptInclude在后面的代码中,其他人直接使用<script src="">包括脚本。

如果可能的话,我想合并为一种处理此问题的方法,但我不确定每种方法的优缺点是什么以及首选哪种方法。


一个例子是:

protected override void Render(HtmlTextWriter writer)
 {
    Page.ClientScript.RegisterClientScriptInclude("jQuery", ResolveClientUrl("~/scripts/jquery/js/jquery-1.4.2.min.js"));    
    base.Render(writer);
}

vs

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/scripts/jquery/js/jquery-1.4.2.min.js" />
    </Scripts>
</asp:ScriptManager>

vs

<script src="Scripts/jQuery/js/jquery-1.4.2.min.js" type="text/javascript"></script>

An <asp:scriptreference>是声明式调用的等价物ScriptManager.RegisterScriptBlock(),就像任何其他 ASP.NET 控件声明一样,类似于进行编程Controls.Add().

话虽这么说,确实没有“首选方法”。如果您正在构建可分发的 Web 控件,那么您将需要调用各种.RegisterScript...()控件的设置例程中的方法,而不是依赖用户添加标记。

如果您只想在网站中包含脚本,那么使用标记方法可能更方便。

如果您在 Ajax 调用期间添加脚本,那么您需要使用ScriptManager去做吧。如果您要在常规回发中添加脚本,那么您需要使用ClientScriptManager去做吧。

所以......很难列举优点和缺点。就您而言,如果您不构建可重新分发的代码,那么最明显、最直接的方法是通过标记包含脚本引用,因为它往往更明显。但我不确定你是否能够巩固every出现一种方法,因为所有方法的存在都是有原因的,并且您可能需要使用多种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET 页面中包含脚本的正确方法 的相关文章

随机推荐

  • 找到最接近某个值的公约数的有效算法?

    我有两个号码 x1 and x2 对于一个号码y 我想计算的公约数x1 and x2尽可能接近y 有一个有效的算法吗 我相信是时候重新表述我的问题并且更加清楚了 这与整数无关 所以 假设我们有两个数字x1 and x2 比如说 用户输入一个
  • React 访问 axios 拦截器中的 redux 存储

    I want to access redux store in axios s interceptor which configures jwt token so I import the store into the API js fil
  • Toolkit.getDefaultToolkit().createImage() 与 ImageIO.read()

    我正在使用 Swing 创建一个 UI 我想在JLabel 我使用的代码如下 JLabel label new JLabel new ImageIcon ImageIO read new File img jpg 如果我使用的话效果很好pn
  • 对矩阵的每个元素使用 max

    gt x lt array 10 10 dim c 4 5 gt x 1 2 3 4 5 1 10 6 2 2 6 2 9 5 1 3 7 3 8 4 0 4 8 4 7 3 1 5 9 如何将 max x 0 应用于每个元素 以便得到这个
  • JavaFX TreeView 的多种对象类型? (和更多)

    我目前有以下对象数据结构 Item 字符串名称 信息的数组列表 特点 字符串名称 收集Item Account 字符串名称 收集特点 最多 8 个 我想制作一个如下所示的 TreeView Root invisible Jake Accou
  • 在 Linux 上使用 Mono 运行 SignalR .Net 客户端 - 可能吗?

    有谁有运行经验SignalR net 客户端在单声道上 我正在考虑将其用于需要运行跨平台的进程 需要连接到互联网托管的 SignalR Hub 我创建了一个在 mono 框架下使用 signalr 客户端工作的示例项目 https gith
  • PHP访问控制系统

    我是使用 PHP 和 MySQL 创建 Web 应用程序的团队的一员 该应用程序将有多个具有不同角色的用户 该应用程序还将以地理分布的方式使用 因此 我们需要创建一个在以下两个级别运行的访问控制系统 控制特定 php 页面的用户权限 即根据
  • 三次贝塞尔曲线上的最近点?

    如何沿着三次贝塞尔曲线找到最接近平面上任意点 P 的点 B t 我编写了一些快速而简单的代码来估计任意阶贝塞尔曲线的这一点 注意 这是伪暴力 而不是封闭式解决方案 Demo http phrogz net svg closest point
  • 使用 EclipseLink MOXy (JAXB) 将子类编组为 JSON 时是否可以隐藏“@type”条目?

    我即将开发一个基于 JAX RS 的 RESTful Web 服务 并使用 MOXy JAXB 来自动生成 Web 服务的 JSON 响应 一切都很酷 但由于 Web 服务将是基于 JavaScript 的 Web 应用程序的后端 因此可以
  • 具有提升权限的 CreateProcessAsUser

    我的服务在本地系统权限下运行 需要在用户会话中启动具有管理员权限的应用程序 我得到的是 WTSGetActiveConsoleSessionID WTSQueryUserToken用于会话 ID CreateProcessAsUser 问题
  • 让 Discord Bot 在 repl.it 上保持在线

    我该如何使用repl it对于我的 Python Discord Bot 并保持其 24 7 运行 我以前用过keep alive但由于某种原因它停止工作 有没有人有什么建议 我不断在控制台中收到此错误 172 18 0 1 2019 年
  • Python 的 site-packages 目录是什么?

    目录site packages在各种Python相关文章中都提到过 它是什么 我该如何使用它 site packages is the 目标目录手动构建的 Python 包 当您从源代码构建并安装 Python 包时 使用迪斯图尔斯 可能通
  • 如何从 Visual Code 中的快速打开菜单打开多个文件?

    我想知道是否可以从 Visual Code 中的快速打开菜单中打开多个文件 使用cmd p默认快捷方式 如果能够选择结果中的前 N 个文件并立即打开它们 将会很有帮助 例如 我可以输入 test device js 并且可以打开前 3 个文
  • Prolog 中的幂函数

    我的电源功能出了什么问题 pow 0 1 pow X Y Z pow X Y 1 X Z pow 2 3 Z ERROR Out of global stack 你的 Y 不会递减 你不能使用像函数这样的谓词 您还必须将 Z 与乘法结果统一
  • 如何在Django的同一页面上插入2个不同的表单

    我必须在同一页面中插入两个表单 1 登记表 2 登录表格 所以如果我在views py中使用它 if request method POST form registrationForm request POST if form is val
  • 不可变类和子类

    我正在尝试了解可变 不可变类 我遇到了这个帖子 提供的部分答案是 如果你想强制不变性 你就不能有子类 看 例如 java lang String 由于这个原因它是最终类 防止人们对 String 进行子类化以使其可变 好吧我明白了but 你
  • 在 Java 中 Jackson JSON 反序列化期间忽略丢失的属性

    在示例中 class Person String name int age 如果 JSON 对象缺少属性 age name John Person person objectMapper readValue jsonFileReader P
  • 可以授予一台计算机上的“网络服务”对另一台计算机上的目录的权限吗?

    我有一个文件 Computer1 Share file pdf 我需要使用在另一台计算机上作为网络服务帐户运行的服务来打开 Computer2 NETWORK SERVICE FWIW 两者Computer1 and Computer2位于
  • 在除一侧之外的所有侧面上创建 CSS3 框阴影

    我有一个选项卡式导航栏 我希望打开的选项卡有一个阴影 以将其与其他选项卡区分开来 我还希望整个选项卡部分有一个向上的阴影 参见底部水平线 遮蔽除打开的选项卡之外的所有选项卡的底部 我将使用 CSS3box shadow财产来做到这一点 但我
  • 在 ASP.NET 页面中包含脚本的正确方法

    我有一个 ASP NET 应用程序 它混合使用了由不同背景的几位开发人员编写的 ASP NET AJAX 包括 UpdatePanel 和 jQuery 一些包含在 ScriptManager 本身中的脚本