有没有办法在 .ASPX 页面中注释掉标记?

Posted

技术标签:

【中文标题】有没有办法在 .ASPX 页面中注释掉标记?【英文标题】:Is there a way to comment out markup in an .ASPX page? 【发布时间】:2010-09-12 09:24:16 【问题描述】:

有没有办法在.ASPX 页面中注释掉标记,这样它就不会传递给客户?我已经尝试了标准 cmets <!-- --> 但这只是作为评论传递,并且不会阻止控件呈现。

【问题讨论】:

【参考方案1】:
<%--
            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”) %>     
--%>

Source

【讨论】:

【参考方案2】:

奖励答案:Visual Studio 中用于注释掉任何内容的键盘快捷键是 Ctrl-KC 。这适用于许多地方,包括 C#、VB、javascript 和 aspx 页面;它也适用于 SQL Management Studio 中的 SQL。

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

【讨论】:

【参考方案3】:

仅供参考 | ctrl + K, C 是 Visual Studio 中的注释快捷方式。 ctrl + K, U uncmets.

【讨论】:

【参考方案4】:
<%-- not rendered to browser --%>

【讨论】:

【参考方案5】:

我相信您正在寻找:

<%-- your markup here --%>

这是一个服务器端注释,不会传递给客户端……但这不是可选的。如果你需要它是可编程的,那么你会想要this answer :-)

【讨论】:

【参考方案6】:

是的,有特殊的服务器端 cmets:

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

【讨论】:

【参考方案7】:

虽然这有效:

<%-- <%@ 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% 的时间都想做的事情。

【讨论】:

【参考方案8】:

另一种假设您要注释掉的不是服务器端代码的方法是......

<asp:panel runat="server" visible="false">
    html here
</asp:panel>

【讨论】:

我确实删除了这个答案,因为它不是严格的“注释掉”。然而,乔尔的回答是指我的,所以我暂时取消了它。 asp:PlaceHolder 的作用相同,但设计为不生成任何额外的 HTML。

以上是关于有没有办法在 .ASPX 页面中注释掉标记?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hugo 中注释掉内容

在 Seaborn 线图 (sns) 上注释标记值

从 *any* URL 的 aspx 页面打开新窗口

页面刷新后保留选择复选标记

ASP.NET 在请求中检测到包含潜在危险的数据,因为它可能包括 HTML 标记或脚本

可以在 ASPX 标记中执行内联代码吗?