Можете ли вы открыть представление в asp.net MVC, которое не имеет расширения движка представления? - PullRequest
1 голос
/ 16 ноября 2010

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

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

Таким образом, моя идея объединить (во время выполнения) все файлы javascript в один состояла в том, чтобы мой основной вид JavaScriptViewResult Razor содержал Html.RenderPartial() вызовов вызовов для файлов .js.

Однако, если я вызываю Html.RenderPartial("GUI/BaseLayout.js"), я получаю исключение, потому что он пытается найти «GUI / BaseLayout.js.cshtml».

Есть ли способ заставить Asp.net MVC не добавлять расширение движка представления к вызову RenderPartial или есть лучший способ объединить все мои файлы .js в один файл сценариев?

1 Ответ

3 голосов
/ 16 ноября 2010

Вы можете попробовать написать собственный метод расширения для 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, но по крайней мере они будут предварительно скомпилированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...