为什么我不能在 asp.net 中注释掉更新面板?

问题描述 投票:0回答:2

我制作了一个空白页面并添加了以下内容以生成正确运行的页面:

    <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.net comments repeater
2个回答
8
投票

这是错误的:

<!--<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 中的服务器端注释使用 <%-- --%>
分隔 关键区别在于,对于客户端评论,浏览器会忽略其中的内容。代码/控件 在客户端评论中仍然会在服务器上执行并且 发送到浏览器。因此,如果导致服务器错误 在其中它将阻止运行页面。


2
投票

<!--
之类的客户端注释不会影响服务器端控件解析。因此,当您的页面被解析时,解析器仍在处理 UpdatePanel,解析器看起来像这样:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">-->     
<!--</asp:UpdatePanel>

而且解析器不理解如何处理标签之间的内部内容。您需要使用服务器端注释,然后解析器将忽略该面板。

<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>
© www.soinside.com 2019 - 2024. All rights reserved.