这让我绕过弯道。我很长一段时间是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
标记的缩进 - 代码块仍然在整个地方滑动。
我认为扩展可能会导致问题,但我将它们全部禁用并重新启动,问题仍然存在。我做了一些根本错误的事吗?我发现很难相信{{1}}会释放出那么差的东西,所以我似乎更有可能不正确地使用它。
答案 0 :(得分:2)
我在另一个问题上找到了一种解决方案(我在搜索这个问题之前确实进行了搜索,但找不到任何问题):Why doesn't Visual Studio code formatting work properly for Razor markup?
基本上,解决方案似乎是确保您的代码使用空格而不是空格的制表符。虽然由于增加了空白而增加了页面的整体大小,但它确实减轻了问题(同时没有完全消除它)。在链接的线程上,似乎与Microsoft连接的人已经承认它确实是与HTML和VB.NET的重叠格式化程序相关的错误,他们希望在新版本中进行改进。我缩进了每个缩进2个空格以减少带宽影响。
感谢那些贡献的人。
答案 1 :(得分:0)
此处更好的替代方法(而不是使用制表符空格)是将HTML和C#/ VB的块缩进更改为“阻止”而不是“智能”。这不是一个完整的解决方案,但IMO比使用空间更难以解决问题!