2015-10-29 14 views
10

這是最令人非常惱火的事情,經過45分鐘的谷歌搜索和測試後,我陷入了論壇上的衆神......我根本無法自動縮進,即使它只是在.cshtml視圖文件縮進在Visual Studio .cshtml文件中被破解

我正在使用VS2015社區版。我的cshtml文件已經很好地玩到現在...

由於某種奇怪的原因,縮進打破了。

我已經嘗試了很明顯的:

  • 選擇標記,並按下Ctrl + K和Ctrl + F
  • 刪除並重新添加結束標記(通常重置縮進)
  • 走進工具>選項>文本編輯器> [插入語言或全部]>選項卡 並將其設置爲智能。

我剛纔在發現問題之前安裝了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

'現在我想知道這是一個系統範圍的格式化問題,因爲上面應該是一個項目符號列表,愚蠢的StackExchange!'你需要一個空行在項目符號之前:-) –

+0

你看過'Resharper >選項>代碼編輯> HTML | Razor | etc>格式化樣式?我發現默認設置從來沒有像VS自動格式化一樣好玩,需要一些配置。也許你在重新安裝Resharper時可能會丟失一些設置。 – learningcs

+0

你在同一行上有'{'。這不會起作用,因爲你在一行中混合了C#和Html。把''放在打開的車把下方的線上/ squiggle/brace/bracket/thingamabob,然後嘗試CTRL + K,CTRL + F(或者CTRL + K,CTRL + D ...不管你的自動格式熱鍵是什麼) – Bardicer

回答

15

你提到你剛安裝ReSharper的這個問題開始之前發生,所以你的問題很可能是由R​​esharper引起的。

默認情況下,Resharper在鍵入時會執行許多其他格式修復,但您可能會發現一堆這些默認修補與您的編碼風格衝突。

您可以通過Resharper > Options > Code Editing > HTML|Razor|etc > Formatting Style

配置ReSharper的代碼格式設置選項在這種情況下,你的問題是設置Do not indent children of載,你沒有在默認情況下想要的標籤。

+0

再次感謝rshepp,這是它!到目前爲止,我很喜歡ReSharper。 – Methodician

+0

非常感謝!優秀的答案,真的很喜歡麪包屑 – RJB

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(); 
 
    }

希望它可以幫助你。

+1

我有一個類似的問題,但在我的情況下,它是一個已經開始的代碼塊中的@@ ... * @註釋塊。 我用傳統的''替換'@ * ...'註釋符號,所有東西都會正常對齊。 –

相關問題