2010-11-16 53 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

相關問題