17

我想在新的 Asp.net MVC 模型中有一些 ScriptManager 功能:

1- 脚本组合
2- 解析外部 Javascript 文件的不同路径
3- 缩小和 Gzip 压缩

是我发现的,但我不确定是 MVC 方法的最佳方式。一般来说,在 MVC 模型中处理 Javascript 代码的好方法是什么?

4

5 回答 5

18

也许您可以创建一个新的“脚本”控制器,其中包含不同的操作,为不同的压缩 JS 文件组合提供服务。由于 MVC 是采用面向资源的方法设计的,即 URL 现在是您的编程模型的中心,为什么不也为您的 Javascript 定义简单的 URI 呢?

例如,在您的观点中,您可以像这样引用您的文件:

<script src="http://your_domain/scripts/all"/>

这将调用您的“全部”操作,从而发送所有压缩的脚本文件。

当然,您现在需要编写组合和压缩代码,或者可能在内部重用 Scriptmanager,我不知道是否可能。

这只是一个想法,目前我直接在我的母版页中引用单个 javascript 文件。

于 2008-11-26T11:34:35.830 回答
10

试试这个: http: //www.codeplex.com/MvcScriptManager

MvcScriptManager 旨在将 AjaxControlToolkit 的 ToolkitScriptManager 中可用的某些关键功能移植到当前的 ASP.NET MVC 框架中。您将能够将其用作 ASP.NET MVC 应用程序中的控件。

特征

  1. 脚本组合(或连接)。使用 MvcScriptManager 声明的脚本将在呈现页面时即时组合成单个脚本文件请求。
  2. 发布模式下的脚本缩小(或处理)。缩小过程仅在引用特定脚本的第一个请求时执行一次。后续请求将使用缓存中经过处理的脚本内容(详见 #5)。可以为每个脚本启用/禁用处理。
  3. 呈现独立脚本文件的本地化资源。如果指定,本地化字符串将附加到脚本中。
  4. 输出脚本时支持可配置的 HTTP 压缩和过期设置。
  5. 具有文件依赖性的脚本缓存。脚本文件内容被缓存,以便渲染组合脚本文件的性能更高。缓存依赖关系链接到物理文件,因此文件系统中的任何脚本更新都会立即反映在缓存中。
  6. 支持根据运行环境以调试/发布模式渲染脚本。
  7. 解析独立脚本文件的不同路径。
  8. 在单个页面(或母版页)上支持多个 MvcScriptManager。支持 Master 和 Slave 两种渲染模式,以便使用一个 ScriptManager 声明的脚本可以滚动到另一个进行渲染。
  9. 支持网络农场场景...
于 2009-01-21T20:17:21.423 回答
3

或者将 ScriptManager 本身作为一个单独的、每页一次的唯一居民包括在内怎么样<form runat="server">

像这样:-

   <form runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
      </asp:ScriptManager>
    </form>

为我工作。

PS 你需要确保这个表单标签永远不会嵌入到另一个表单中。嵌套表单不起作用。

于 2009-05-02T16:52:33.727 回答
0

发现这个研究几乎相同的问题:A Simple ScriptManager for ASP.NET MVC - 在回答这个问题后编写,因此添加以供参考。

在第一种情况下,我将使用蛮力解决方案,即将它全部粘贴在母版页中(尤其是现在可以从 Microsoft 的 CDN 中提取 jQuery)——然后我们将研究更优化解决方案的选项。

于 2009-11-09T18:02:59.800 回答
0

MVC 4 现在包括捆绑和缩小助手。您定义了捆绑中的所有脚本,MVC 将负责捆绑、压缩、缓存清除等。

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

于 2012-11-16T18:23:39.277 回答