Отключить консолидацию скриптов ScriptManager в разработке? - PullRequest
4 голосов
/ 18 ноября 2011

На сайте ASP.NET у меня есть элемент управления ScriptManager на главной странице и повсеместно элементы управления ScriptManagerProxy.В большинстве случаев я использую блок <compositescript> для объединения скриптов в один файл.

Core.Master

<asp:scriptmanager id="ScriptManager1" runat="server"  >
    <compositescript>
        <scripts>
            <asp:scriptreference path="script1.js" />
            <asp:scriptreference path="script2.js" />
            ... etc ...
        </scripts>
    </compositescript>
</asp:scriptmanager>

Пример элемента управления или страницы содержимого

<asp:scriptmanagerproxy runat="server">
    <compositescript>
        <scripts>
            <asp:scriptreference path="script3.js" />
            <asp:scriptreference path="script4.js" />
            ... etc ... 
        </scripts>
    </compositescript>
</asp:scriptmanagerproxy>

Это прекрасно работает, но для эффективного использования клиентских средств отладки Visual Studio я бы предпочел не объединять сценарии при разработке.

Я пытался просто переместить все скрипты с <compositescripts> на <scripts>, таким образом:

    Private Sub ScriptManager1_PreRender(sender As Object, e As System.EventArgs) Handles ScriptManager1.PreRender
        ' In development, don't combine scripts
        If IsDevelopmentEnvironment() Then
            For Each s As ScriptReference In ScriptManager1.CompositeScript.Scripts.Reverse
                ScriptManager1.Scripts.Insert(0, s)
            Next
            ScriptManager1.CompositeScript.Scripts.Clear()
        End If
    End Sub

Это работает как шарм для скриптов в самом ScriptManager.Однако он не видит сценарии в различных элементах управления ScriptManagerProxy, и они все еще консолидируются.Во время отладки я вижу коллекцию ScriptManager1.Proxies, которую я бы хотел перебрать, но это «Друг», поэтому я не могу получить к ней доступ в коде.

Отключение консолидации в разработке кажется довольно очевидным требованием, так что, может быть, есть гораздо более очевидный способ сделать это, которого мне просто не хватает?

1 Ответ

0 голосов
/ 19 ноября 2011

Работает ли ScriptMode = "Debug" и Release?

...