【问题标题】:Server-side comments: What's the equivalent of <%-- --%> in ASP Classic?服务器端注释:ASP Classic 中 <%-- --%> 的等价物是什么?
【发布时间】:2010-12-13 16:45:34
【问题描述】:

ASP Classic 中的&lt;%-- --%&gt; 相当于什么?

我必须修改旧的 ASP 应用程序,我想注释掉一段 HTML:

<td>
    some table cell I'd like to comment out, including
    some <%= inlineServerSideVBScriptExpressions() %>
</td>

将所有内容包装在&lt;%-- ... --%&gt; 中,就像我在 ASP.NET 中所做的那样,不起作用并导致编译错误“预期语句”。 HTML cmets &lt;!-- ... --&gt; 也不是一个选项,因为内联 ASP 表达式会被计算并失败。

【问题讨论】:

    标签: vbscript asp-classic


    【解决方案1】:

    以下是我可以轻松注释掉整个混合代码块的方法:

    <% If False Then %>
      <html stuff></html stuff>
      <% more asp stuff %>
    <% End If %>
    

    如果我必须多次执行此操作,我会为我的计算机制作某种宏以通过热键执行此操作。

    【讨论】:

    • 这是一个解决烦人问题的巧妙小方法。除了不得不再次使用经典 asp 工作的问题之外......
    【解决方案2】:

    试试这个:-

    <!-- METADATA  
      Your comments here
    -->
    

    METADATA 向 ASP 处理器表明这是一条不需要发送给客户端的注释。

    【讨论】:

    • 现在这听起来很有希望——我明天会试一试。这些东西是否记录在某处?我尝试用谷歌搜索asp "METADATA directive",发现很多参考资料,但没有“官方规范”...
    • 像魅力一样工作!不过,您确定这总是被解释为评论(即被忽略)吗?我在网上找到的使用 METADATA 的示例总是基于 METADATA 后面的内容做某事(加载一些 COM 组件等)。我发现了这个:msdn.microsoft.com/en-us/library/ms525307.aspx,这似乎暗示 METADATA 的主要目的是加载库。所以,我想知道将它用于“注释掉”内容的可能性是否只是(意外?)副作用......
    • 我不确定我是否同意该声明 - METADATA 向 ASP 处理器表明这是不需要发送给客户端的注释。” 我认为你在那里使用了一些诗意的许可,在我看来,这更像是TypeLibrary Declaration 机制的一个快乐的副作用。
    • 这似乎是评论专有服务器端代码的一种非常危险的方式。封闭的标记意味着没有任何处理 METADATA 指令,这是一个纯 HTML 注释。
    • @FrankBailey 这绝对不是 ASP Classic 的一部分,但似乎存在于 IIS 堆栈中的某个位置。不保证它会一直工作,因为解析它的东西很可能会改变。不保证它可以在所有版本的 IIS 上平等地工作。 TypeLibrary 是如何努力确定内容全部无效的?如果某些内容有效怎么办?阴险地,如果 METADATA 什么都不做,它只是一个 HTML 注释,在测试中很容易被遗漏,但仍然保留在服务器响应中,即使是稍微好奇的人。
    【解决方案3】:

    在 ASP Classic 中没有“内置”方法来阻止 cmets。您必须在不想运行的每一行之前添加'

    【讨论】:

    • ...*and* 在该注释块中所有出现的%&gt; 之间放置一个空格。这就是我目前正在做的事情;太糟糕了,没有更优雅的解决方案。
    • 接受,因为你的第一句话回答了我的问题。 (不是我希望的答案,但仍然......)
    • 实际上它是唯一一个没有块注释机制的VBScript,它很容易将ASP与VBScript混淆,因为人们经常说“ASP”是指“ASP页面内的VBScript”。 Javascript 有 /* */,HTML 有 。 ASP 脚本处理器也有一个,见下面我的回答。
    【解决方案4】:

    撇号样式的 cmets 在 VBScript 中受支持。他们可能在这里工作。

    这些在处理脚本时会被删除,并且不会发送到浏览器。

    <%
       'This line and the following two are comments.
       'The function below does something ineluctable.
       'So don't mess with it.
       SomeFunction()
    %>
    

    这是source for this

    【讨论】:

    • +1。是的,这就是我目前正在使用的解决方法。我希望会有一些像 这样的块级结构
    • @Heinzi 文本编辑器很有可能可以帮助您批量添加/删除这样的 cmets。
    【解决方案5】:

    这就是源代码控制的用途。只需删除代码并在签入时对其进行适当标记,以便以后需要时可以找到sn-p。

    【讨论】:

    • +1。总的来说,我同意,并且我们确实为我们的(当前基于 .net 的)项目使用版本控制。由于各种原因,这不是这个遗留项目的选项。
    • 是的,没有人将他们的 ASP 经典项目切换到版本控制。
    • @BaileyS 通过 SVN 存储库运行我所有的经典 asp 项目,并且永远不会返回。
    • @Lankymart,大约三个月前,我把我的所有东西都放在了 Mercurial 中。你是 100% 正确的,我正在吃我不起眼的馅饼。
    【解决方案6】:

    @Heinzi:既然你不能使用 Joel Coehoorn 的优秀解决方案,你也可以使用类似的东西

    <%
    Dim blnDebug : blnDebug = True
    
    If NOT blnDebug Then
        ' Display mixed HTML/ASP code
    %>
    HTML, HTML .. <%=someASPfunction() %> .. more HTML
    <%
    End If
    %>
    

    ...然后破解文件,当您准备打开您有效“注释掉”的代码时,只需将blnDebug 设置为False。它胜过在我的每个内联代码调用前面加上撇号。

    【讨论】:

      【解决方案7】:

      我知道您可以在 Dreamweaver 中做到这一点;我看到我的同事在做。 但是我大部分时间都在使用 Visual Studio 或 Notepad++,而这个功能在那里不起作用。

      所以我使用特殊粘贴单引号 ' 来评论多行,方法是:

      Shift + Alt + 向下或向上箭头,然后添加单引号'

      通过选择所有行中的所有 's 然后删除来取消注释 ' 也是如此。

      【讨论】:

        【解决方案8】:

        我总是注释掉的方式是使用:

        <%'=Var%>
        

        【讨论】:

          【解决方案9】:

          我正在使用与@Vasily Hall 答案类似的解决方案

          我正在使用 Sublime,所以我也需要将评论可视化到我的 IDE 中

          <% if 1 = 2 then 'comment %>
            <!--div>
             ...
             multicomment goes here
             ...
            </div -->
          <% end if 'end comment %>
          

          【讨论】:

            【解决方案10】:

            作为个人使用本地测试,不怕代码泄露,可以使用%&gt;&lt;!--关闭asp标签,使用--&gt;&lt;%继续执行代码

            <%
            first block to execute
            %><!-- 
            
            second block to comment out
            
            --><%
            Third block to execute
            %>
            

            【讨论】:

              猜你喜欢
              • 2021-06-28
              • 1970-01-01
              • 2019-09-14
              • 2014-01-27
              • 1970-01-01
              • 2017-05-01
              • 2013-06-16
              • 2018-11-19
              • 1970-01-01
              相关资源
              最近更新 更多