объединить скрипты в инструментарий asp.net ajax - PullRequest
6 голосов
/ 09 марта 2009

Мы используем версию 3.0.20229.0 asp.net ajaxControlTookKit (до .net 3.5 sp1). Мне было интересно, смогу ли я объединить наши пользовательские файлы JavaScript в ScriptResource.axd, который создает controlTookKit. Я нашел эту статью (http://blogs.msdn.com/delay/archive/2007/06/11/script-combining-made-easy-overview-of-the-ajax-control-toolkit-s-toolkitscriptmanager.aspx) который говорит мне, что мне нужно добавить атрибут scriptCombine в файл сборки. Мы запускаем проект WebSite, как я могу добавить этот атрибут?

1 Ответ

3 голосов
/ 09 марта 2009

Вам потребуется добавить сценарии в качестве ресурсов в отдельную библиотеку и сослаться на них оттуда, чтобы воспользоваться объединителем сценариев.

Редактировать, чтобы пройти через

Создайте новый проект библиотеки классов (называемый, например, «CombinedScipts»), удалите класс по умолчанию.

Добавить ссылку на AjaxControlToolkit и System.Web

Добавьте файлы JS в проект и измените их свойство Build Action на «Embedded Resource».

Открыть файл AssemblyInfo.cs

Добавить следующее:

// You need to add a web resource call for each JS file in the project
[assembly: WebResource("CombinedScripts.Console.js", "text/javascript")]
[assembly: WebResource("CombinedScripts.Utilities.js", "text/javascript")]
// Not setting IncludeScripts or ExcludeScripts marks all scripts as
// combinable.
[assembly: AjaxControlToolkit.ScriptCombine()]

Добавьте эту библиотеку в качестве ссылки в проект своего веб-сайта.

В вашем проекте вы можете добавить следующее между тегами ToolkitScriptManager:

<Scripts>
  <asp:ScriptReference name="CombinedScripts.Console.js" 
                       assembly="CombinedScripts" />
  <asp:ScriptReference name="CombinedScripts.Utilities.js"
                       assembly="CombinedScripts" />
</Scripts>

Не забудьте убедиться, что для свойства CombineScripts ToolkitScriptManager установлено значение true.

Это приводит к одному вызову чего-то вроде: /pageName.aspx?_TSM_HiddenField_=ToolkitScriptManager1_HiddenField&[...]

Которые будут содержать ваши комбинированные сценарии с разделителями комментариев, такими как:

//START CombinedScripts.Console.js
[...]
//END CombinedScripts.Console.js
//START CombinedScripts.Utilities.js
[...]
//END CombinedScripts.Utilities.js
...