删除从 html 中的 asp 代码创建的空行

Remove empty line created from asp code in html

如果在经典 ASP 页面中我写:

<%pippa="Camilla"%>
<!DOCTYPE html>

在页面源代码中我会在<!DOCTYPE html>之前有一个空行。

如何删除它? 我知道我可以像这样将所有内容写在一行中:

<%pippa="Camilla"%><!DOCTYPE html>

但在其余代码中似乎很奇怪。 有什么办法解决吗? 如果是,是否可以在 web.config 中使用解决方案?

What about using Dynamic Content Compression ?

您无法删除它。当服务器上的代码为 运行 时,将执行 <% %> 标记内的代码,并将任何输出置于其位置。 ASP 源中的所有其他字符保持原样。因此,初始结束 %> 标记后的换行符保持原样。

唯一的解决方法是您自己建议的方法。即:

<%pippa="Camilla"%><!DOCTYPE html>

不漂亮,但很管用。

这是服务器端代码生成的症结之一,ASP处理器只处理ASP代码(内嵌代码块<% %>).

这意味着任何其他 HTML 都被保留 "as is",包括回车 return 和换行等特殊字符。

因此,当 ASP 处理您的页面时,它会看到

⏎
<!DOCTYPE html>

⏎表示回车Return,换行

因此,正如您已经在问题中陈述的那样,避免这种情况的唯一方法是将内嵌代码块放在同一行。

<% pippa="Camilla" %><!DOCTYPE html>

另一种方法是将 HTML 和代码分配分成不同的部分。我通常通过将我的 HTML 放在它自己的 Sub / Function 中并使用 Init() 函数在页面前​​面传递或分配变量来做到这一点,你仍然会发现自己在处理像这样的代码;

<%
Sub DisplayHTML()
%><!DOCTYPE html>
...
</html><% End Sub %>

这不是很漂亮,所以我倾向于忽略尾随的新行,除非它影响页面的呈现 (IE 兼容模式等).


在代码中处理 HTML 的另一种方法是构建 HTML 模板以加载 HTML 并替换由占位符定义的值。

How to edit the html from ASP in a better way?