我制作了一个空白页并添加了以下内容,从而生成了正确运行的页面:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>
然后我将其更改为以下内容:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>-->
为什么这会导致错误,说我不能有“ - &gt;”更新面板内的文字!?
谢谢!
答案 0 :(得分:7)
这是错误的:
<!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>-->
这是正确的:
<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>
编辑:
ASP.NET支持一个名为“服务器端注释”的鲜为人知的功能,可用于完全禁用页面中的代码/控件/ html。 ASP.NET中的服务器端注释使用&lt;% - - %&gt;
分隔关键区别在于,对于客户端评论,浏览器忽略了其中的内容。客户端注释中的代码/控件仍将在服务器上执行并发送到浏览器。因此,如果在其中导致服务器错误,则会阻止运行该页面。
答案 1 :(得分:2)
<!--
等客户端注释不会影响服务器端控件解析。因此,当您的页面被解析时,解析器仍在处理UpdatePanel,它看起来像解析器:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>
解析器无法理解如何处理标记之间的内部内容。您需要使用服务器端注释,然后解析器将忽略该面板。
<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>