在没有母版页的aspx页面中使用JQuery没有问题,但是当我try 在有母版页的页面中使用JQuery时,它不起作用,所以我最终将JQuery文件和其他脚本文件放在页面中,而不是母版.现在如果我有10页,我会为所有10页做这个,我知道这是不正确的.在下面的示例母版页中,我将把脚本文件放在哪里.

<html>
<head runat="server">
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <asp:ContentPlaceHolder ID="ContentPanel" runat="server">
    </asp:ContentPlaceHolder>            
</body>
</html>

我最近使用了FancyBox插件,我所做的不是将jQuery脚本和FancyBox脚本放在母版页中,因为我在让它工作时感到沮丧,我只是把它放在我希望脚本运行的页面中,特别是在关闭asp:content之前的底部.当然,现在我有一个问题,如果我想在其他页面中使用FancyBox插件,我会将jQuery脚本和FancyBox脚本放在所有5个页面上,而不仅仅是母版页.在处理母版页时,使用上面的示例,所有内容都到哪里go 了?

推荐答案

您可以像通常那样在母版页中声明主jQuery脚本:

<head runat="server">
  <link href="/Content/Interlude.css" rel="Stylesheet" type="text/css" />
  <script type="text/javascript" src="/Scripts/jquery-1.3.2.min.js"></script>
  <asp:ContentPlaceHolder ID="head" runat="server">
  </asp:ContentPlaceHolder>
</head>

然后,任何特定于页面的JS文件都可以加载到引用Head ContentPlaceholder的内容控件中.

然而,一个更好的 Select 是查看ScriptManagerScriptManagerProxy控件——它们可以为您提供更多的控制,让您可以控制JS文件提供给客户端的方式.

因此,您将在母版页中放置一个ScriptManager控件,并在其中添加对jQuery核心代码的引用:

<body>
  <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
      <Scripts>
        <asp:ScriptReference Path="/Scripts/jquery-1.3.2.min.js" />
      </Scripts>
    </asp:ScriptManager>

然后,在需要一些自定义JS文件或jQuery插件的页面中,您可以:

<asp:Content ID="bodyContent" ContentPlaceholderID="body">
  <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
      <Scripts>
        <asp:ScriptReference Path="/Scripts/jquery.fancybox-1.2.1.pack.js" />
      </Scripts>
  </asp:ScriptManagerProxy>

ScriptManager允许您执行一些操作,如控制在页面上使用LoadScriptsBeforeUI呈现脚本的位置(或者更好的做法是将其设置为false).

Asp.net相关问答推荐

log4net 记录所有未处理的应用程序错误

如何使多行的 TextBox 控件无法调整大小?

在正则表达式中允许 -(破折号)

在每页级别增加 ASP.Net 超时

IE10 SCRIPT5009:__doPostBack未定义

EntityFramework 通过 ID 获取对象?

RestSharp 获取请求的完整 URL

异步编程与线程有什么不同?

使用 gridview asp.net 进行排序和分页

在 Asp.net mvc5 中使用用户名而不是邮箱作为身份

如何将枚举类型绑定到 DropDownList?

将通用列表绑定到转发器 - ASP.NET

发布网站项目时临时路径太长

如何在 ASP.Net 的客户端 (JavaScript) 上判断 Page.Validate()?

ASP.NET 元:资源键

SignalR /signalr/hubs 404 未找到

覆盖静态方法

在 Application_BeginRequest 中设置会话变量

当用户在文本框中按 Enter 键时执行按钮单击事件

ASP.NET MVC2/3 中runAllManagedModulesForAllRequests的正确用法是什么?