MVC4 Razor View中出现奇怪的空白

Ste*_*ird 9 asp.net-mvc razor asp.net-mvc-4

我正在ASP.Net MVC4中开发一个应用程序,并且有一个奇怪的空白问题.我已经用Razor开发了很多MVC3站点而没有这个问题.

这是我的模板cshtml文件:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>HF - Content Management - @ViewBag.Title</title>
    <link href="@Url.Content("~/content/bootstrap/bootstrap.min.css")" rel="stylesheet" />
    @Styles.Render("~/bundles/css/hf-cms-logged-in")
</head>
    <body>

        @Html.Partial("Partials/NavBar")

        <div class="container">@RenderBody()</div>

        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script src="@Url.Content("~/scripts/bootstrap/bootstrap.min.js")"></script>
        @Scripts.Render("~/bundles/js/validation")
        <script src="@Url.Content("~/scripts/hf-cms.js")"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

注意RenderBody()调用的行 - 这里没有多余的空格.

当我调用一个动作时,渲染的主体前面有一些我看不到的空格,我已经添加了,似乎无法摆脱.我调用没有逻辑的动作,它只返回以下视图:

@{
    ViewBag.Title = "Dashboard";
}    
<h1>Dashboard</h1>
Run Code Online (Sandbox Code Playgroud)

它绝对使用正确的模板(在我的_ViewStart.cshtml中指定)

在Google Chrome中查看该页面,源会显示额外的空白.见下图:

Google Chrome开发人员工具中显示的空白

在IE10中可以看到类似的问题.这显然会影响设计.我已经尝试使用Meleze.Web删除任何额外的空格,但空白仍然存在.

我对此感到茫然,因为它到目前为止是一个相对简单的网站,还没有什么好玩的,所以我看不出这个空白来自哪里.

有没有人以前用MVC4或Razor看过这个?

编辑:我已经尝试删除所有样式表和脚本文件,空白仍然存在.

Ste*_*ird 9

经过一段时间的努力,我找到了解决方案.

根_ViewStart.cshtml文件中一定有一个有趣的字符.我删除了ViewStart文件的内容并重新输入,这解决了问题.让我觉得一个奇怪的角色可能会导致这个问题.

不喜欢回答我自己的问题,但我希望这有助于其他人.理论上,这不是特定于MVC4的问题,您可能在MVC3中遇到同样的问题.


小智 5

我遇到了同样的问题,史蒂夫的回答让我走上正轨,它可能是一个嵌入文件中的不寻常的角色.

在我的例子中,它在文件的开头被证明是一个重复的Unicode字节顺序标记(0xEFBBBF).当我从Git Extensions diff视图中复制并粘贴文件内容时,它似乎已经陷入困境.

顺便说一下,Visual Studio有一个内置的Hex查看器.如果右键单击解决方案资源管理器中的文件并单击"打开方式...",则可以选择"二进制编辑器".