有没有一种方法可以在.ASPX页面中注释标记?

228

有没有一种方法可以在.ASPX页面中注释掉标记,使其不传递给客户端? 我已经尝试了标准的注释<!-- -->,但这只是作为注释发送,并不能防止控件渲染。

8个回答

354
<%--
            Commented out HTML/CODE/Markup.  Anything with
            this block will not be parsed/handled by ASP.NET.

            <asp:Calendar runat="server"></asp:Calendar> 

            <%# Eval(“SomeProperty”) %>     
--%>

来源


76

额外回答:在Visual Studio中注释任何内容的键盘快捷键是Ctrl-KC。该功能在多个地方都适用,包括C#、VB、Javascript和aspx页面;在SQL Management Studio中也适用于SQL。

您可以选择要注释的文本,或者将文本放置在要注释的块内;例如,将光标放置在GridView的开始标记内,按下Ctrl-KC,整个块就会被注释掉。


31

提示信息 | 在 Visual Studio 中,ctrl + K, C 是添加注释的快捷键,ctrl + K, U 是取消注释的快捷键。


27
<%-- not rendered to browser --%>

13

我想你正在寻找:

<%-- your markup here --%>

这是一个服务器端的注释,不会传递到客户端... 但它不是可选的。如果你需要这个可以被程序控制,那么你需要看看这个答案 :-)


12

是的,有特殊的服务器端注释:

<%-- Text not sent to client  --%>

9

虽然这样做是有效的:

<%-- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ht_tv1.Default" %> --%>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Blank._Default" %>

这个不会。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" <%--Inherits="ht_tv1.Default"--%> Inherits="Blank._Default" %>

所以你无法注释掉某个部分,而这正是我99.9995%的时间想要做的事情。

5
另一种假设您想要注释的不是服务器端代码的方法是...
<asp:panel runat="server" visible="false">
    html here
</asp:panel>

1
我曾删除过这个答案,因为它不是严格意义上的“注释掉”。然而,乔尔的回答提到了我的回答,所以暂时我又把它恢复了。 - BigJump
1
asp:PlaceHolder的作用与asp:Panel相同,但它被设计为不生成任何额外的HTML。 - billpg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接