将ContentPlaceHolder放在<script>标记内的问题

ris*_*ism 2 javascript asp.net visual-studio-2008

我在ASP.Net母版页中有这个:

 <script language="javascript" type="text/javascript">
        <asp:ContentPlaceHolder ID="scriptContentHolder" runat="server"></asp:ContentPlaceHolder>
    </script>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在设计模式下查看内容页面时,它告诉我相关的母版页中存在错误,因为"scriptContentHolder"不存在.

<asp:Content ID="scriptContent" ContentPlaceHolderID="scriptContentHolder" runat="server">
    g_page = "mnuSurveys";
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

如果我将主页面更改为:

<asp:ContentPlaceHolder ID="scriptContentHolder" runat="server"></asp:ContentPlaceHolder>
Run Code Online (Sandbox Code Playgroud)

和内容页面:

<asp:Content ID="scriptContent" ContentPlaceHolderID="scriptContentHolder" runat="server">
<script language="javascript" type="text/javascript">
    g_page = "mnuSurveys";   
    </script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

然后一切都很酷.为什么是这样?页面编译并执行得很好......但是如上所述,设计者在标签中放置ContentPlaceHolder控件时会发出嘎嘎声.

小智 10

我遇到了同样的问题并解决了这个问题:

<%= "<script type=\"text/javascript\">" %>    
    jQuery(document).ready(function() {
        // On document ready, execute this methods... 
        <asp:ContentPlaceHolder ID="jQueryOnDocReady" runat="server" />                 
    });
<%= "</script>"%>
Run Code Online (Sandbox Code Playgroud)