这让我绕过弯道。我很长一段时间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>
视图的模板页面:
Next
在上面的例子中,一旦我在End If
之后点击返回,HTML
下面的两行随机地从它应该的位置向前跳跃两个标签。在其他示例中,我击中了一个圆圈,其中将一条线推到正确的位置会使另一条线偏离位置,反之亦然。
我很生气,我很乐意完全禁用自动缩进并自己管理它,但我甚至无法知道如何做到这一点!遵循另一个线程的建议我禁用了HTML
页面的缩进,但所有停止的是Microsoft
标签的缩进 - 代码块仍然在整个地方滑动。
我认为扩展可能导致问题,但我禁用它们并重新启动,问题仍然存在。我做了一些根本错误的事吗?我发现很难相信Why doesn't Visual Studio code formatting work properly for Razor markup?会发布一些如此糟糕的东西,所以我似乎更有可能不正确地使用它。
我在另一个问题上找到了一个解决方案(一种时尚)(在发布这个问题之前我真的很努力地搜索并找不到任何东西):qazxswpoi
本质上,解决方案似乎是确保您的代码使用空格而不是空格的制表符。虽然由于增加了空白而增加了页面的整体大小,但它确实减轻了问题(同时没有完全消除它)。在链接的线程上,似乎与Microsoft连接的人已经承认它确实是与HTML和VB.NET的重叠格式化程序相关的错误,他们希望在新版本中进行改进。我缩进了每个缩进2个空格以减少带宽影响。
感谢那些贡献的人。
这里更好的替代方案(而不是使用制表符空格)是将HTML和C#/ VB的块缩进更改为“阻止”而不是“智能”。这不是一个完整的解决方案,但IMO比使用空间更难以解决问题!