Javascript 如何加载需要使用ASP.NET 4.51的jQuery的单个.js文件?
我的网站的正常模式是每个页面的功能都有一个javascript文件。并让母版页加载所需的jQuery和jQuery UI文件 我刚开始在VS2013中使用ASP.NET 4.5。。。而且它内置了强大的捆绑/缩小功能。但是,当我将我的page.js“添加”到page.aspx时。。。它无法运行,因为母版页(包含jquery)中的“捆绑”javascript文件加载在my page.js文件之后 我考虑将所有单独的页面加载到包中,但这需要我映射出所有的表单字段等,因为现在将加载所有单独的javascript文件 我还假设这是非常低效的,因为jquery将尝试将事件绑定到不存在的DOM对象(因为当浏览器位于page3.js时,page.js、page2.js、page4.js等将加载到bundle中) 正确的方法是什么 我的另一个选择是消除捆绑,但我想利用单个js/css文件 想法?Ans 1)当您的jquery来自bundle或直接链接到母版页时: 您可以使用ContentPlaceHolder在绑定js后呈现page.js。请确保在捆绑行下方添加ContentPlaceHolder 1) 在母版页中Javascript 如何加载需要使用ASP.NET 4.51的jQuery的单个.js文件?,javascript,jquery,asp.net,bundling-and-minification,Javascript,Jquery,Asp.net,Bundling And Minification,我的网站的正常模式是每个页面的功能都有一个javascript文件。并让母版页加载所需的jQuery和jQuery UI文件 我刚开始在VS2013中使用ASP.NET 4.5。。。而且它内置了强大的捆绑/缩小功能。但是,当我将我的page.js“添加”到page.aspx时。。。它无法运行,因为母版页(包含jquery)中的“捆绑”javascript文件加载在my page.js文件之后 我考虑将所有单独的页面加载到包中,但这需要我映射出所有的表单字段等,因为现在将加载所有单独的javasc
<head runat="server">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="" />
<meta name="author" content="" />
<title></title>
<%: System.Web.Optimization.Scripts.Render("~/Bundles/js") %>
<asp:ContentPlaceHolder ID="cphPageJs" runat="server">
</asp:ContentPlaceHolder>
</head>
2) 在您的页面中
<asp:Content ID="Content1" ContentPlaceHolderID="cphPageJs" runat="server">
<script src="/js/myPage.js"></script>
</asp:Content>
Ans 2)当jquery从ScriptManager渲染时:
在这种情况下,您需要在内容页中使用ScriptManagerProxy。确保在内容中使用此控件,并且在母版页中的ScriptManager之后添加ContentPlaceHolder
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManagerProxy ID="smp" runat="server">
<Scripts>
<asp:ScriptReference Path="~/js/myTest.js" />
</Scripts>
</asp:ScriptManagerProxy>
</asp:Content>
因此,在我的标记底部添加HeadContent部分后,jquery.js文件似乎是从Scriptmanager而不是bundle中呈现的(即使它已在BundleConfig.cs中注册) 请参见下面的Scriptmanager在默认情况下如何放置在标记中。我能把这个移到头上吗?这是默认的asp.net site.master布局垃圾吗?我不敢相信其他人没有遇到这个问题 因此,我的page.js文件现在位于modernizer捆绑包文件下面的headcontent输出中(该文件包含了谁知道的内容,因为很多js文件仍然是从scriptmanager逐行呈现的)。但是Scriptmanager将jquery放在我的headcontent输出下面
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Website Title - <%: Page.Title %></title>
<asp:PlaceHolder runat="server">
<%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>
<webopt:bundlereference runat="server" path="~/Content/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
</head>
<body>
<form runat="server">
<asp:ScriptManager runat="server">
<Scripts>
<%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Path="~/Scripts/site.js" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
<%--Site Scripts--%>
</Scripts>
</asp:ScriptManager>
网站名称-
您可以选择捆绑文件的存放位置吗?也许您可以将bundle.js
包含在
标记的顶部附近,或者包含在
标记中。在以前版本的ASP.NET中,它在site.master页中有一个headcontent部分,但现在只有内容空间。嗨,Jibboo,如果您认为这是答案,请标记。谢谢。我想你忘了附上什么?NiraVyas-查看我的其他评论/答案(作为单独的答案张贴在上面或下面)我更新了上面的答案,我认为Ans 2是你的解决方案。