我的Web应用程序中的某个aspx页面上有这样的代码:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
<asp:Label ID="lbl1" runat="server" Text="Laber1" />
<asp:Button ID="btn1" runat="server" Text="Button1" onclick="btn1_Click" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
<!--
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>
<asp:TextBox ID="txtAjaxToolkit" runat="server" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtAjaxToolkit" />
-->
</asp:Content>
当我编译项目并在浏览器中转到此页面时,我得到了这个例外:
[InvalidOperationException: На страницу можно добавить только один экземпляр ScriptManager.]
(翻译:“此页面上只允许使用ScriptManager的一个实例”)。
如果第二个脚本管理器(ToolkitScriptManager)位于注释中,为什么会收到此消息?
我使用的是ASP.NET 4和ASP.NET Ajax Control Toolkit。
P:对不起我的英文。答案 0 :(得分:7)
使用服务器端comment语法。
<%---
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>
<asp:TextBox ID="txtAjaxToolkit" runat="server" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtAjaxToolkit" />
---%>
答案 1 :(得分:4)
您已使用 HTML 注释,但标记引擎并不关心 - 它仍会尝试生成该HTML注释的内容。毕竟,您可能需要在评论中添加时间戳等内容。
你想要server-side comment,就像这样;
<%--
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>
<asp:TextBox ID="txtAjaxToolkit" runat="server" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server"
TargetControlID="txtAjaxToolkit" />
--%>
所有这一切都需要弄清楚什么会发现什么是评论 - HTML <!-- comment -->
针对的是浏览器; `&lt;% - comment - %&gt;针对ASPX处理器。