我想将代码包含在我的Asp.net MVC页面视图中的javascript文件中(该视图是here所述的javascript结果。我想这样做是出于我的javascript的整合原因,到降低我的RIA复杂GUI的加载开销,提高压缩效率,并使调试更容易。
问题是我使用Ext设计器来创建我的GUI。每次导出我的项目时,每个类都会创建2个.js文件,因为我的GUI非常复杂,所以我已经拥有了很多.js文件。
因此,我将所有javascript文件合并(在运行时)的想法是让我的主JavaScriptViewResult
Razor视图包含{。1}}查看.js文件的调用。
但是,如果我调用Html.RenderPartial()
,我会收到异常,因为它试图找到“GUI / BaseLayout.js.cshtml”。
有没有办法强制Asp.net MVC不将视图引擎的扩展添加到RenderPartial调用,还是有更好的方法将我的所有.js文件连接成一个输出的脚本文件?
答案 0 :(得分:3)
您可以尝试为HtmlHelper编写自己的扩展方法,该方法读取.js文件并连接它们。但按照请求执行此操作可能会有点费用。
第二种选择是使用像Chripy(chirpy.codeplex.com)这样的工具。这是一个Visual Studio插件(不是插件,因此它应该与Express版本一起使用)。它主要用于编译.less文件,但它可以做更多。例如,您可以创建一个类似于这样的.chirp.config文件:
<?xml version="1.0"?>
<root>
<FileGroup Name="main.scripts.js">
<Folder Path="/" Type="*.min.js" Minify="false"/>
<File Path="MicrosoftAjax.js" />
</FileGroup>
</root>
如果现在将它放在Scripts文件夹中,它将找到所有.min.js文件和MicrosoftAjax.js文件,并将它们一起添加到main.scripts.js文件中。您可能必须使处理所有.js文件变得复杂一些,但至少它们会被预编译。