Встроенные объявления RegisterClientScriptBlock CDATA

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

Однако заметил, что встроенные объявления <%serverside.code%> теперь не выполняются.

ClientScript.RegisterClientScriptBlock(GetType(Page), "test", <a><![CDATA[
        <script type="text/javascript">
            testValue = '<%=Page.Title%>';
        </script>]]></a>, True)

Производит;

<script type="text/javascript">
  testValue = '<%=Page.Title%>';
</script>

person Thermionix    schedule 20.12.2012    source источник


Ответы (1)


Чтобы решить эту проблему, я закончил блок cdata с помощью .Value и добавил переменную кода, а затем начал новый блок cdata с остальной частью многострочного оператора.

ClientScript.RegisterClientScriptBlock(GetType(Page), "test", <![CDATA[
    <script type="text/javascript">
        testValue = ']]>.Value + Page.Title + <![CDATA[';
        //more code
    </script>
  ]]>.Value, True)
person Thermionix    schedule 23.01.2013