2010-11-16 67 views
1

我想将代码包含在我的Asp.net MVC页面视图中的一个JavaScript文件中(该视图是一个javascript结果,如here所述。我想为了我的javascript的整合原因这样做,以降低加载开销我的RIA的复杂图形用户界面,使压缩更高效,并使调试更容易。因为我的图形用户界面非常复杂,我已经有相当多的.js文件了。你可以在没有视图引擎的扩展名的asp.net MVC中打开一个视图吗?

所以我的想法是将所有javascript文件合并到一个文件中,以便让我的主要文件为JavaScriptViewResult Razor视图c在Html.RenderPartial()上查看对.js文件的调用。

但是,如果我拨打Html.RenderPartial("GUI/BaseLayout.js"),我会遇到异常,因为它会尝试查找“GUI/BaseLayout.js.cshtml”。

有没有办法强制Asp.net MVC不添加视图引擎的扩展到RenderPartial调用,还是有更好的方法来连接我所有的.js文件到一个输出的脚本文件?

回答

3

您可以尝试为HtmlHelper编写自己的扩展方法,该方法读入.js文件并将它们连接起来。但是按照请求做这件事可能有点贵。

第二个选择是使用像Chripy(chirpy.codeplex.com)这样的工具。这是一个Visual Studio插件(不是插件,所以它应该可以与Express版一起使用)。它主要用于编译无文件,但它可以做更多。例如,你可以做一个.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> 

如果你现在把这个脚本文件夹会发现所有.min.js文件和MicrosoftAjax.js文件,并把它们相加到main.scripts.js文件中。处理所有.js文件可能需要更复杂一些,但至少它们会被预编译。

+0

这是非常棒的,这将完美满足我的需求!谢谢! – KallDrexx 2010-11-16 13:17:28

相关问题