2010-11-16 1 views
1

Я хочу включить код в файл javascript внутри моего представления страницы MVC Asp.net (представление представляет собой результат javascript, как описано here. Я хочу сделать это по причинам консолидации для моего javascript, чтобы снизить нагрузку на загрузку мой сложный графический интерфейс для моего RIA, чтобы сделать сжатие более эффективным и сделать отладку проще.Можете ли вы открыть представление в asp.net MVC, у которого нет расширения движка просмотра?

Проблема в том, что я использую конструктор Ext для создания моего графического интерфейса. Каждый раз, когда мой проект экспортируется, он создает 2 .js-файла за класс, и поскольку мой графический интерфейс довольно сложный, у меня уже довольно много файлов .js.

Итак, моя идея объединить (во время выполнения) все файлы javascript в один из них состояла в том, чтобы иметь мой основной JavaScriptViewResult Razor view c ontain 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> 

Если теперь поместить его в папку Scripts будет найти все файлы .min.js и MicrosoftAjax.js файл и добавить их вместе в файл main.scripts.js. Вам, вероятно, придется немного усложнить обработку всех ваших .js-файлов, но, по крайней мере, они будут предварительно скомпилированы.

+0

Это очень здорово, и это будет работать идеально для моих нужд! Благодаря! – KallDrexx

Смежные вопросы