我的HTML标签被篡改了

时间:2012-04-04 17:15:26

标签: asp.net-mvc-3 html5 umbraco

我有一个Umbraco 5 MVC3项目,我发现那里有白色空间。在调查时我发现我的HTML在firefox web开发人员工具中“查看生成的源”时看起来非常糟糕。例如,它删除了我的doctype声明,并移动了我的元标记和东西。简化代码:

<!doctype html>
<html class="no-js" lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>@ViewBag.Title</title>
    <link rel="stylesheet" href="@Url.Content("~/Content/Styles/style.css")"/>
</head>
<body id="" class="default">
    <div id="wrapper">
        <header id="banner" class="body">
            <a class="ir logo" href="/"><h1>Christian </h1></a>
            <ul class="share">
                <li id="facebook"><a class="ir" href="http://www.facebook.com/sharer.php?u=@Request.Url.AbsoluteUri">Facebook</a></li>
                <li id="twitter"><a class="ir" href="http://twitter.com/share?text=Christian">Twitter</a></li>
            </ul>
            @Html.Partial("nav")
        </header>
        <section id="content" class="body">
            @RenderBody()
        </section>
    </div>
    <script src="@Url.Content("~/Scripts/plugins.js")"></script>
    <script src="@Url.Content("~/Scripts/script.js")"></script>
</body>
</html>

输出就像这样开始

<html class="no-js" lang="en"><head></head><body id="" class="default">

2 个答案:

答案 0 :(得分:2)

如果要检查服务器生成的HTML,应使用View source CTRL + U )。

Generated source更像是基于DOM重构HTML,并且包括例如在加载页面后在客户端使用javascript创建的节点。

答案 1 :(得分:0)

好吧,我解决了。花了我一会儿。在Marapet建议不使用“生成的源代码”之后,我在一堆浏览器中尝试了普通的“查看源代码”,并在所有浏览器中得到了不同的结果。当我试图验证我的来源时,我收到了一些奇怪的抱怨:

  

在未首先看到doctype的情况下找到非空格字符。预计<!DOCTYPE html>

     

元素头缺少必需的子元素标题实例。

我个人最喜欢的

  

上次错误后无法恢复。任何进一步的错误都将被忽略。

看起来像doctype有些东西。打开记事本并粘贴在那里,以便从元数据中“清洗”代码,这种方式有时我会将内容粘贴到tinyMCE中。即使在记事本中,文本格式也很奇怪。 doctype声明的字体大小小于html的其余部分。

所以我也用notepad ++打开它,在声明面前我有一堆问号。我删除了它们并将其复制回Visual Studio,保存后现在一切正常。

我认为我遇到此问题的原因是我直接从github上的HTML5 Boilerplate复制了片段。

// Sherlock