0

当从 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>
4

1 回答 1

0

为了解决这个问题,我用 .Value 结束了 cdata 块并附加了 code 变量,然后用多行语句的其余部分开始了一个新的 cdata 块

ClientScript.RegisterClientScriptBlock(GetType(Page), "test", <![CDATA[
    <script type="text/javascript">
        testValue = ']]>.Value + Page.Title + <![CDATA[';
        //more code
    </script>
  ]]>.Value, True)
于 2013-01-23T23:14:24.810 回答