我想在新的 Asp.net MVC 模型中有一些 ScriptManager 功能:
1- 脚本组合
2- 解析外部 Javascript 文件的不同路径
3- 缩小和 Gzip 压缩
这是我发现的,但我不确定是 MVC 方法的最佳方式。一般来说,在 MVC 模型中处理 Javascript 代码的好方法是什么?
我想在新的 Asp.net MVC 模型中有一些 ScriptManager 功能:
1- 脚本组合
2- 解析外部 Javascript 文件的不同路径
3- 缩小和 Gzip 压缩
这是我发现的,但我不确定是 MVC 方法的最佳方式。一般来说,在 MVC 模型中处理 Javascript 代码的好方法是什么?
也许您可以创建一个新的“脚本”控制器,其中包含不同的操作,为不同的压缩 JS 文件组合提供服务。由于 MVC 是采用面向资源的方法设计的,即 URL 现在是您的编程模型的中心,为什么不也为您的 Javascript 定义简单的 URI 呢?
例如,在您的观点中,您可以像这样引用您的文件:
<script src="http://your_domain/scripts/all"/>
这将调用您的“全部”操作,从而发送所有压缩的脚本文件。
当然,您现在需要编写组合和压缩代码,或者可能在内部重用 Scriptmanager,我不知道是否可能。
这只是一个想法,目前我直接在我的母版页中引用单个 javascript 文件。
试试这个: http: //www.codeplex.com/MvcScriptManager
MvcScriptManager 旨在将 AjaxControlToolkit 的 ToolkitScriptManager 中可用的某些关键功能移植到当前的 ASP.NET MVC 框架中。您将能够将其用作 ASP.NET MVC 应用程序中的控件。
特征
- 脚本组合(或连接)。使用 MvcScriptManager 声明的脚本将在呈现页面时即时组合成单个脚本文件请求。
- 发布模式下的脚本缩小(或处理)。缩小过程仅在引用特定脚本的第一个请求时执行一次。后续请求将使用缓存中经过处理的脚本内容(详见 #5)。可以为每个脚本启用/禁用处理。
- 呈现独立脚本文件的本地化资源。如果指定,本地化字符串将附加到脚本中。
- 输出脚本时支持可配置的 HTTP 压缩和过期设置。
- 具有文件依赖性的脚本缓存。脚本文件内容被缓存,以便渲染组合脚本文件的性能更高。缓存依赖关系链接到物理文件,因此文件系统中的任何脚本更新都会立即反映在缓存中。
- 支持根据运行环境以调试/发布模式渲染脚本。
- 解析独立脚本文件的不同路径。
- 在单个页面(或母版页)上支持多个 MvcScriptManager。支持 Master 和 Slave 两种渲染模式,以便使用一个 ScriptManager 声明的脚本可以滚动到另一个进行渲染。
- 支持网络农场场景...
或者将 ScriptManager 本身作为一个单独的、每页一次的唯一居民包括在内怎么样<form runat="server">
?
像这样:-
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
</asp:ScriptManager>
</form>
为我工作。
PS 你需要确保这个表单标签永远不会嵌入到另一个表单中。嵌套表单不起作用。
发现这个研究几乎相同的问题:A Simple ScriptManager for ASP.NET MVC - 在回答这个问题后编写,因此添加以供参考。
在第一种情况下,我将使用蛮力解决方案,即将它全部粘贴在母版页中(尤其是现在可以从 Microsoft 的 CDN 中提取 jQuery)——然后我们将研究更优化解决方案的选项。
MVC 4 现在包括捆绑和缩小助手。您定义了捆绑中的所有脚本,MVC 将负责捆绑、压缩、缓存清除等。
http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification