2012-04-11 31 views
0

我做了一个空白页面,并添加导致正确运行页面如下:为什么我不能在asp.net中注释掉一个updatepanel?

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

为什么会这样这将导致一个错误说我无法在更新面板中使用“ - >”字面值!?

谢谢!

回答

7

这是错误的:

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

这是正确的:

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

编辑:

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

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

+0

+1你是正确的,但你还没有回答OP的*实际*问题......这是为什么** **你必须那样做 – Robbie 2012-04-11 16:49:26

+0

没错咄。谢谢!!所以如果我可以在.aspx中使用<! - 标准HTML,但是要在.aspx中使用<% - for asp,那么它是一个很好的模型,只要* always * use <% - ? – chilleo 2012-04-11 16:52:07

+0

@ Robbie-Yes.I已更新。谢谢提及。 – coder 2012-04-11 16:53:42

2

客户端评论如<!--不影响服务器端控制分析。所以,当你的网页进行解析,解析器仍在处理的UpdatePanel和它看起来像这样的解析器:

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

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

<%--<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
</asp:UpdatePanel>--%> 
相关问题