我想知道在部分视图中包含javascript文件的最佳做法是什么.一旦渲染,这将最终作为我的页面的html中间的js包含标记.从我的角度来看,这不是一个很好的方法.它们属于head标签,因此不应阻止浏览器一次性呈现html.
一个例子: 我在'PictureGallery'局部视图中使用了一个jquery picturegallery插件,因为这个局部视图将在几个页面上使用.这个插件只需要在使用这个视图时加载,我不想知道每个局部视图使用哪些插件......
谢谢你的回答.
作为此问题的扩展,在此处链接用户控件中的JavaScript库我之后是一些关于人们如何在运行时或在构建时连接和缩小JavaScript的示例.我还想看看它如何适用于您的母版页.
我不介意页面特定的文件被缩小和链接,因为它们当前是(见下文),但主母版页上的所有JavaScript文件(我有大约5或6)我想连接和缩小.
任何同时融入CSS连接和缩小的人的加分!:-)
当前的母版页,包含我想要连接和缩小的常见JavaScript文件:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<head runat="server">
... BLAH ...
<asp:ContentPlaceHolder ID="AdditionalHead" runat="server" />
... BLAH ...
<%= Html.CSSBlock("/styles/site.css") %>
<%= Html.CSSBlock("/styles/jquery-ui-1.7.1.css") %>
<%= Html.CSSBlock("/styles/jquery.lightbox-0.5.css") %>
<%= Html.CSSBlock("/styles/ie6.css", 6) %>
<%= Html.CSSBlock("/styles/ie7.css", 7) %>
<asp:ContentPlaceHolder ID="AdditionalCSS" runat="server" />
</head>
<body>
... BLAH ...
<%= Html.JSBlock("/scripts/jquery-1.3.2.js", "/scripts/jquery-1.3.2.min.js") %>
<%= Html.JSBlock("/scripts/jquery-ui-1.7.1.js", "/scripts/jquery-ui-1.7.1.min.js") %>
<%= Html.JSBlock("/scripts/jquery.validate.js", "/scripts/jquery.validate.min.js") %>
<%= Html.JSBlock("/scripts/jquery.lightbox-0.5.js", "/scripts/jquery.lightbox-0.5.min.js") %>
<%= Html.JSBlock("/scripts/global.js", "/scripts/global.min.js") %>
<asp:ContentPlaceHolder ID="AdditionalJS" runat="server" />
</body>
Run Code Online (Sandbox Code Playgroud)
在这样的页面中使用(我很满意):
<asp:Content ID="signUpContent" ContentPlaceHolderID="AdditionalJS" runat="server">
<%= …Run Code Online (Sandbox Code Playgroud) 为什么我无法调试驻留在部分视图中的脚本,这些脚本是在运行时创建的?要查看脚本列表中的脚本(例如在Chrome中)并对其进行调试,我必须将其移至上一级的"常规"视图,或者我必须将其移动到单独的.js文件中.但是,如果脚本如此之小以至于我不想将其移动到任何地方,并且仍然希望能够进行调试呢?
有没有办法从局部视图添加CSS引用到页面,并让它们在页面中呈现<head>(根据HTML 4.01规范的要求)?
c# asp.net-mvc partial-views webforms-view-engine asp.net-mvc-2