我制作了一个空白页面并添加了以下内容以生成正确运行的页面:
<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>-->
为什么这会导致一个错误,说我不能在更新面板中有一个“-->”文字!?
谢谢!
这是错误的:
<!--<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>-->
这是正确的:
<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>
编辑:
如 https://weblogs.asp.net/scottgu/Tip_2F00_Trick_3A00_-Using-Server-Side-Comments-with-ASP.NET-2.0- 中所述 —
ASP.NET 支持一个鲜为人知的功能,称为“服务器端注释”,您可以使用它来完全禁用代码/控件/html 页面。 ASP.NET 中的服务器端注释使用 <%-- --%>
分隔 关键区别在于,对于客户端评论,浏览器会忽略其中的内容。代码/控件 在客户端评论中仍然会在服务器上执行并且 发送到浏览器。因此,如果导致服务器错误 在其中它将阻止运行页面。
<!--
之类的客户端注释不会影响服务器端控件解析。因此,当您的页面被解析时,解析器仍在处理 UpdatePanel,解析器看起来像这样:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->
<!--</asp:UpdatePanel>
而且解析器不理解如何处理标签之间的内部内容。您需要使用服务器端注释,然后解析器将忽略该面板。
<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>