在没有母版页的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相关问答推荐

AJAX返回未定义、失败

使用 aspnet core SignalR 客户端为 VSIX 项目.

无法翻译 LINQ

C# - 将 xyz 平铺转换为纬度/经度,反之亦然,给出不同的结果

如何从 JavaScript 调用 C# 函数?

Azure 自定义控制器/API .Net 后端

返回 JSON 对象 (ASP.NET WebAPI)

Web api 不支持 POST 方法

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

c# - 如何从列表中获取值的总和?

将存储过程中 Select 查询的结果返回到列表

学习什么 - Ruby on Rails 或 ASP .NET MVC...鉴于熟悉 ASP .NET

在使用网络服务器加载它们之前,如何编译 Asp.Net Aspx 页面?

当用户使表单无效时单击取消按钮时,如何清除 MVC 客户端验证错误?

VirtualPath 在当前应用程序根目录之外

如何从 JS 访问 ViewBag

如何确定服务器端 C# 上的浏览​​器窗口大小

MVC5 身份验证中的......与主域之间的信任关系失败

捕获的异常本身为 null !

ASP.NET MVC 和 httpRuntime executionTimeout