【问题标题】:How to add line breaks (and other whitespace) to the page source from an ASPX file如何从 ASPX 文件向页面源添加换行符(和其他空格)
【发布时间】:2015-11-27 08:15:27
【问题描述】:

当我使用 Visual Studio 创建 ASP.NET 页面时,查看页面源代码时会忽略 ASPX 文件中的某些换行符。比如下面的ASPX代码

<head runat="server">
    <title>My Page Title</title>

    <meta id="MetaTag1" content="First item of information">
    <meta id="MetaTag2" content="Second item of information">
    <meta id="MetaTag3" content="Third item of information, containing longer description">
    <meta id="MetaTag4">
    <meta id="MetaTag5" content="Fifth item of information">
    <meta id="MetaTag6">

    <script type="text/javascript">
        function button_pressed() {
            document.getElementById('SubmitButton').style.borderWidth = '8px 5px 4px 7px';
            [etc...]

当我查看页面源时显示如下:

<head><title>
    My Page Title
</title><meta id="MetaTag1" content="First item of information"><meta id="MetaTag2" content
="Second item of information"><meta id="MetaTag3" content="Third item of information, conta
ining longer description"><meta id="MetaTag4"><meta id="MetaTag5" content="Fifth item of in
formation"><meta id="MetaTag6">

    <script type="text/javascript">
        function button_pressed() {
            document.getElementById('SubmitButton').style.borderWidth = '8px 5px 4px 7px';
            [etc...]

ASPX 文件中的大部分换行符和空格也在页面源代码中,但在某些情况下,换行符会被忽略(即使是&lt;/title&gt; 和第一个&lt;meta&gt; 标记之间的双换行符)。在其他情况下,页面源中会出现 ASPX 文件中不存在的空白(或至少一种情况 - &lt;title&gt; 标记)。

这似乎是 ASP.NET 如何解释 ASPX 文件的问题,而不是浏览器或 Visual Studio,因为页面源在 FireFox、IE 和 Chrome 中看起来相同,并且在文本编辑器而不是 VS 并没有什么不同。

我想知道为什么当 ASPX 文件中的大部分空白确实进入 HTML 源时,它会被忽略(我只展示了一个有代表性的示例,重点关注有问题的部分,但其余的大部分页面源的格式主要对应于 ASPX)。

但更重要的是,我想知道如何在 ASPX 文件中添加换行符,这将使页面源代码更具可读性,但不会在网页上呈现。


一些不太理想的解决方案:

  • 显然,每行末尾的&lt;br /&gt; 不是我想要的。虽然这确实在页面源代码中添加了换行符,但它会在页面上呈现,在顶部添加无用的空格。
  • 我可以在每行末尾添加&amp;#10;。这样更好,因为它不会在呈现的页面中添加空格,但它会显式显示在页面源中,使其看起来很混乱。
  • 我可以将所有信息放在一个&lt;meta&gt;标签中,并在content属性的各个项目之间添加&amp;#10s。如果我这样做,则信息会垂直排列,并且不会显示&amp;#10s。虽然这是最需要可读的部分,但这仅适用于属性值的内容。此外,对于某些&lt;meta&gt;s,内容是在 ASPX 中显式设置的,而对于其他人,它是由代码隐藏设置的,因此这样做会使事情复杂化。
  • 我知道有一些依赖于浏览器的解决方案,但我不想依赖那些。我希望换行符实际上位于页面源代码中。

【问题讨论】:

  • 好吧,我有另一个想法。如果我在行尾添加&lt;%:"\n"%&gt;,则会在页面源代码中添加一个换行符,而不会显示任何额外的混乱(如&amp;#10; 的情况)。但是使用代码块只是在源代码中添加换行符是相当笨拙的。有谁知道纯 ASPX 解决方案?谁能解释为什么换行符只在几个部分被忽略?特别具有讽刺意味的是,忽略换行符的少数地方之一是标题中的 标记,因为 标记的主要目的是在页面源中查看!
  • "given that the primary purpose of &lt;meta&gt; tags is to be viewed in the page source!" 我认为主要目的是让搜索引擎阅读并提示浏览器如何呈现内容。顺便说一句:我以前从未注意到这一点,现在它困扰着我!我也喜欢排列整齐的东西。

标签: html asp.net visual-studio


【解决方案1】:

“但更重要的是,我想知道如何在 ASPX 文件中添加换行符,这将使页面源代码更具可读性但不会在网页上呈现。”

只要您的元素样式具有未设置为保留空白的white-space 属性,您的浏览器中就不会显示 aspx 中的换行符等空白。

【讨论】:

  • 在查看源代码时,css 样式不会影响文字 html 文本的显示方式。
  • 同意。但是,引号中的问题部分似乎表明发帖人关心的是both页面的源代码如何在文本编辑器中显示以及如何说source 由浏览器显示,这会受到元素的 css 样式的影响。
  • 不,这是对我的意思的误解。 “页面来源”是指用于查看网页来源的浏览器功能。 “如何在 ASPX 文件中添加换行符以使页面源代码更具可读性”,我并不是指如何添加换行符以使 ASPX 文件在编辑器中查看时更具可读性。方法是按 [Enter] 键。我在问可以在 ASPX 文件中添加什么,这将在从浏览器查看的页面源中创建换行符,而不向呈现的网页添加换行符,也不会给页面源添加混乱。
猜你喜欢
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
相关资源
最近更新 更多