0

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

    <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>-->

为什么这会导致错误说我在更新面板中不能有“-->”文字!?

谢谢!

4

2 回答 2

8

这是错误的:

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

这是对的:

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

编辑:

ASP.NET 支持一个鲜为人知的功能,称为“服务器端注释”,您可以使用它来完全禁用页面中的代码/控件/html。ASP.NET 中的服务器端注释使用 <%-- --%> 分隔

关键区别在于,对于客户端评论,浏览器会忽略其中的内容。客户端注释中的代码/控件仍将在服务器上执行并发送到浏览器。因此,如果其中导致服务器错误,它将阻止运行该页面。

于 2012-04-11T16:44:45.777 回答
2

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

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

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

<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>--%>
于 2012-04-11T16:50:22.820 回答