如何在ASP.net页面中包含jQuery?

Ian*_*oyd 12 asp.net jquery user-controls

我有一个ASP.net UserControl,要求包含页面包含对jquery的引用.

在过去,我只是在包含页面中包含对jQuery的引用:

<HEAD>
   <SCRIPT type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></SCRIPT>
</HEAD>
Run Code Online (Sandbox Code Playgroud)

但是我的UserControl对jQuery的依赖是一个内部实现细节,不应泄漏到外部.我的userControl如何指示jQuery包含在最终页面中?


研究这个,我发现很多困惑的解决方案,在不同的时间调用不同的功能.我不愿提及其中的任何一个,因为人们可能认为它们中的任何一个都是有效的.我希望得到正确的答案,而不是一个有效的答案.

不同的解决方案涉及:

我的困惑集中在:

  • 我什么时候想用RegisterClientScriptIncludevs RegisterStartupScript
  • 我什么时候想在Page_Loadvs Rendervs PreRendervs按钮点击期间调用它?
  • RegisterXxxxScriptXxx该如何给出这条路"Scripts/jquery-1.7.2.min.js"

简短版本:我如何转换

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
    Inherits="_Default" %><!DOCTYPE html>
<html>
<head runat="server">
    <script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

用于UserControl:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MySuperCoolControl.ascx.cs" Inherits="Controls_MySuperCoolControl" %>
Run Code Online (Sandbox Code Playgroud)

pau*_*ulH 1

[这仅在您的用户控件要在内部使用时才相关。如果它是为了分发那么它不会有太大帮助]

看看这个链接:

http://www.codeproject.com/Articles/196727/Managing-Your-JavaScript-Library-in-ASP-NET

本文建议创建方法来生成对 javascript 库(例如 jQuery)的引用,这样,如果您想在页面中使用它,您只需调用 JavascriptLoader.IncludeJQuery() [或任何您调用的方法]。

现在,我所做的是更进一步,在我放置在 GAC 中的程序集中创建这些方法,以便它可用于我的所有 .net Web 应用程序。现在,无论我想在哪里使用 jQuery,该方法都已经可用。最好的事情是,如果我在用户控件中调用该方法,然后在另一个用户控件中再次调用它,然后在页面上再次调用它,它仍然只注册该库一次。如果我决定升级到较新版本的 jQuery,我只需更改我的 dll,并且它会随处更改。