RegisterClientsBlock CDATA内联声明



当从ASPX页面迁移到ASCX控件中时,我将大量的标头包含在CodeBehind中,我一直在将它们包裹在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>

要解决这个问题,我用。值结束了CDATA块,并附加了代码变量,然后在使用Multiline语句的其余部分

开始了一个新的CDATA块
ClientScript.RegisterClientScriptBlock(GetType(Page), "test", <![CDATA[
    <script type="text/javascript">
        testValue = ']]>.Value + Page.Title + <![CDATA[';
        //more code
    </script>
  ]]>.Value, True)

最新更新