如何在vbhtml razor文件中使代码缩进正常运行?

wwa*_*rby 6 vb.net asp.net-mvc indentation razor asp.net-mvc-3

这让我绕过弯道.我是一位长期VB.NET开发形式的开发人员,非常新颖ASP.NET且全新MVC.我正在创建vbhtml使用VB.NET Razor语法的页面,而且我似乎在不断地反对UI试图不正确地缩进代码的问题.以下示例为基础,基于新Razor视图的模板页面:

@Code
    Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <div>
        @If True Then
            @<ul>
                @For x = 1 To 2

                Next
            </ul>
                End If '<-- Randomly indented too far
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,一旦我点击返回后Next,End If下面的两行随机地从它应该的位置向前跳跃两个标签.在其他示例中,我击中了一个圆圈,其中将一条线推到正确的位置会使另一条线偏离位置,反之亦然.

我很生气,我很乐意完全禁用自动缩进并自己管理它,但我甚至无法知道如何做到这一点!根据另一个线程的建议,我禁用了HTML页面的缩进,但所有停止的是HTML标签的缩进- 代码块仍然在整个地方滑动.

我认为扩展可能导致问题,但我禁用它们并重新启动,问题仍然存在.我做了一些根本错误的事吗?我发现很难相信Microsoft会发布一些如此糟糕的东西,所以我似乎更有可能不正确地使用它.

wwa*_*rby 2

我在另一个问题上找到了一个(时尚的)解决方案(在发布这个问题之前我确实进行了认真的搜索,但找不到任何东西):Why does not Visual Studio codeformatting尼克斯适用于Razor标记?

本质上,解决方案似乎是确保您的代码使用空格而不是制表符作为空白。虽然由于空白增加而增加了页面的整体大小,但它确实减轻了问题(虽然没有完全消除它)。在链接的线程中,似乎与 Microsoft 有联系的人承认这确实是与 HTML 和 VB.NET 重叠格式化程序相关的错误,他们希望在新版本中对其进行改进。我已将每个缩进减少到 2 个空格,以减少带宽影响。

感谢那些做出贡献的人。