你能在asp.net MVC中打开一个没有视图引擎扩展的视图吗?

时间:2010-11-16 04:18:31

标签: c# asp.net-mvc extjs

我想将代码包含在我的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文件连接成一个输出的脚本文件?

1 个答案:

答案 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文件变得复杂一些,但至少它们会被预编译。