Как сохранить блок скрипта при частичной обратной передаче?

Это проблема, с которой я столкнулся в веб-приложении, над которым я сейчас работаю.
Поэтому вместо того, чтобы загромождать вопрос несвязанным кодом, я воссоздал проблему в изолированном упрощенном веб-приложении, которое только демонстрирует эту проблему.
Надеюсь, это поможет найти решение.

У меня есть веб-пользовательский элемент управления, в котором в качестве содержимого используется следующее:

<% if (ShowAlertScript)
   { %>
       <script type="text/javascript">
           function AlertMe() 
           {
               alert('Hello World!');
           }
       </script>
<% } %>
<input type="button" onclick="AlertMe()" value="Say Hello" />

И его внутренний код содержит не что иное, как логическое определение ShowAlertScript .
Это представляет собой элемент управления, который у меня есть в большом веб-приложении, которое имеет два режима: режим ввода и режим отображения . В режиме ввода он имеет большой блок javascript, который полезен только тогда; он делает кое-что интересное, чтобы помочь пользователю ввести информацию.

Этот элемент управления представлен на общей картинке следующим образом:

<asp:ScriptManager runat="server" />
<asp:UpdatePanel runat="server">
  <ContentTemplate>
    <asp:MultiView ActiveViewIndex="0" runat="server" ID="mvw">
      <asp:View runat="server">
        <asp:Button runat="server" ID="btnSwitch" 
            OnClick="btnSwitch_Click" Text="Switch" />
      </asp:View>
      <asp:View runat="server">
        <uc:MyInputControl runat="server" ID="micInput" ShowAlertScript="true" />
      </asp:View>
    </asp:MultiView>
  </ContentTemplate>
</asp:UpdatePanel>

Когда вы нажимаете btnSwitch , он просто переключается на второй вид с пользовательским элементом управления. Обратите внимание, как у меня ShowAlertScript уже инициализирован как true .
Возможный результат состоит в том, что, поскольку я «показываю сценарий предупреждения» в пользовательском элементе управления, функция AlertMe () будет выполняться, когда вы щелкаете элемент input-button , потому что он записано в соответствии со встроенным оператором if .

Если вы запустите этот код, который я дал вам как есть, он не будет работать.
Браузер сообщит, что не видит функцию AlertMe () ; насколько ему известно, он не определен. Но если вы удалите UpdatePanel (или отключите частичный рендеринг ScriptManager ), он будет нормально работать при полной обратной передаче, когда вы нажмете btnSwitch .

Я хочу, чтобы он работал с частичной обратной передачей, потому что все это - небольшой кусок по сравнению с остальной частью страницы, и я не хочу выполнять полную обратную передачу каждый раз, когда они переключают представления.
По-видимому, ScriptManager даже не беспокоится о повторной визуализации файла ascx для возможных изменений.
Либо ScriptManager недостаточно умен, либо мне не хватает опции, позволяющей ему отображать