作为此问题的扩展,在此处链接用户控件中的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>
在这样的页面中使用(我很满意):
<asp:Content ID="signUpContent" ContentPlaceHolderID="AdditionalJS" runat="server">
    <%= …为什么我无法调试驻留在部分视图中的脚本,这些脚本是在运行时创建的?要查看脚本列表中的脚本(例如在Chrome中)并对其进行调试,我必须将其移至上一级的"常规"视图,或者我必须将其移动到单独的.js文件中.但是,如果脚本如此之小以至于我不想将其移动到任何地方,并且仍然希望能够进行调试呢?
我正在实现一个客户数据库,它允许我使用ASP.NET MVC和javascript(jQuery)搜索用户和公司,浏览和编辑他们的详细信息以及许多其他内容.
无论何时发生post或get,我都会通过jQuery.load执行此操作并将PartialView插入DOM.
一些部分视图包括表单.我希望那些也是ajax表单,所以这些partialviews具有document.ready处理程序,将表单转换为ajax表单(通过jquery.form).
一开始我在回调/代码中处理这个问题,将部分视图插入到DOM中.但是,这导致了一个包含大量javascript函数的大脚本,这些函数引用了不同的页面.我通过将脚本插入相应的页面来重构大javascript.
现在代码更加流畅(我的OnXXXPartialView处理程序更少),代码整齐地位于它所属的局部视图中.大多数这些文件只包含3-4行javascript代码,因此开销并不是很重要.
因此,我不仅有效地向文档DOM添加元素,有时我还添加了一段javascript.在实践中,这工作正常,但似乎Firebug无法调试动态加载的脚本.
Firebug问题有一些可行的解决方法,但我想知道我的架构是否真的是这里的罪魁祸首.你把javascript属于部分视图?有没有最好的做法?
我已经使用ASP.NET MVC大约六个月了,并且已经查看了那些微软人员创建的Nerd Dinner示例.我注意到他们在启用AJAX到RSVP晚餐时所做的一件事就是将用户控件中的JavaScript引用用于RSVP.
(文件:RSVPStatus.ascx)   
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.Dinner>" %>
<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>    
这对我来说似乎不对,因为我很有可能在其他地方使用这些相同的库,例如登录验证.另外,如果我更改脚本版本,我需要搜索所有对库的引用.
所以我问我的想法是否正确,这些引用实际上应该在主页的中心位置?
请让我知道最佳做法是什么,如果有的话,还有利弊.
我有一个asp.nset-mvc网站,我有一个部分视图,存在于许多不同的视图中.
还有一个.js文件与该部分视图使用的功能相关联.
现在我在每个父视图中包含该js文件,该视图在head部分中包含此局部视图.
我现在想通过从每个父视图中删除对javascript文件的引用并将该引用放在局部视图的主体中来更容易维护.(所以它刚刚在一个地方列出)
有谁看到这种变化有任何不利因素?这是javascript的推荐做法,只能通过特定的局部视图来利用吗?