объединить сценарии в наборе инструментов asp.net ajax

Мы используем версию 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, как я могу добавить этот атрибут?


person Herman    schedule 09.03.2009    source источник


Ответы (1)


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

Изменить, чтобы обеспечить обзор

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

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

Добавьте файлы JS в проект и измените их свойство "Действие сборки" на "Встроенный ресурс".

Откройте файл 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
person Zhaph - Ben Duguid    schedule 09.03.2009
comment
есть ли у вас примеры такого подхода? - person Herman; 09.03.2009
comment
Извините, я писал прохождение, как вы прокомментировали. - person Zhaph - Ben Duguid; 09.03.2009
comment
Большое вам спасибо. .NET 3.5 с пакетом обновления 1 обеспечивает более чистое решение этой проблемы: asp.net /learn/3.5-SP1/video-296.aspx . Думаю, я подожду, пока мы не обновим нашу структуру. Еще раз спасибо. - person Herman; 09.03.2009
comment
Да, не могу отрицать, что обновления 3.5 SP1 делают это намного проще. - person Zhaph - Ben Duguid; 09.03.2009