为什么我不能在asp.net中注释掉一个updatepanel?

时间:2012-04-11 16:42:27

标签: asp.net comments repeater

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

    <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;”更新面板内的文字!?

谢谢!

2 个答案:

答案 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>--%>