这是最令人气愤的事情,经过45分钟的谷歌搜索和测试后,我陷入了论坛的神灵......我根本无法生活,没有自动缩进,即使它只是在.cshtml查看文件
我正在使用VS2015社区版。我的cshtml文件到目前为止播放得很好......
由于一些奇怪的原因,缩进破裂。
我已经尝试过显而易见的事了:
我刚刚在注意到问题之前安装了ReSharper。不确定是否是由此造成的,但问题确实是新的,我不记得在此之前就看到了它。
同样很奇怪,有些东西缩进而有些东西不缩进
对于那些需要视觉辅助的人来说,这种缩进令我感到沮丧:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width"/>
<title>Index</title>
</head>
<body>
<h1>Posts Index</h1>
@if (true)
{
<text>
<p>True is true!</p>
</text>
}
</body>
</html>
答案 0 :(得分:16)
您提到刚刚在此问题发生之前安装了Resharper,因此您的问题很可能是由Resharper引起的。
默认情况下,Resharper会在您键入时执行许多额外的格式修复,但您可能会发现许多这些默认修复与您的编码风格冲突。
您可以通过Resharper > Options > Code Editing > HTML|Razor|etc > Formatting Style
在这种情况下,您的问题是设置Do not indent children of
包含您默认不需要的标记。
答案 1 :(得分:2)
从3周开始(自VS 2013之后更新到Visual Studio 2015 SP 2)我遇到了问题,cshtml文件中的复制/粘贴和注释会破坏我的文件格式。 有趣的是,标签缩进位于第7列。我不明白为什么。
更新到VS 2015 SP 3后,问题未被禁止。
然后我发现,在我的cshtml文件中,“@”符号销毁了我的副本/粘贴/评论:
@model MAWGridModel<AktionGridRowModel>
@if (Model != null)
{
@Html.DevExpress().GridView(settings =>
{
settings.Name = "MAWAktionenErgebnisGrid";
...
}).Bind(Model).GetHtml();
}
“Html.DevEpress()......”之前的“@”全部毁掉了。这里的代码片段适合我。 (我希望它真的能做到。)
@model MAWGridModel<AktionGridRowModel>
@if (Model != null)
{
Html.DevExpress().GridView(settings =>
{
settings.Name = "MAWAktionenErgebnisGrid";
...
}).Bind(Model).Render();
}
希望它可以帮到你。
答案 2 :(得分:0)
我使用VS2017(asp.net core 2.2),使用Devextreme控件,并且有完全相同的问题。
我已经取消复制粘贴后的自动自动格式设置了,因为已经有一段时间了(因为它不起作用)。
由于我具有大于100个DE控件的大视图(每个视图均具有大约5个属性),我不得不不时地格式化视图(使用“格式化文档”,从而“格式化选择”在我的安装中不起作用,顺便说一句)时间,使文件结构“可读”。
如果这样做,我将遇到完全相同的问题(这些行将在右边显示,直到它们在“监视器外”不可见并且我有一个大的监视器...)。
为了使文件再次“可读”,我必须手动编辑每一行(删除错误的空间)。
我现在由于尝试错误而浪费了数小时。
我发现的唯一(非常丑陋和糟糕)“解决方法”是将整个代码写在一行上。
示例:@(Html.DevExtreme().TextBox().ID("AngebotFirma").Value(@Model.PAB_Firma).MaxLength(45).Placeholder("Firma...").InputAttr("autocomplete", "company")
)
这样,整个文档(HTML,JQuery和Devextreme(一行))的格式(预期)是正确的。
所以..这不是不是解决方案,但可以节省时间。至少在完成并测试视图之前,我将代码更改为“一行代码”。 之后,我-也许-会将代码改回“多行” ...