2015-10-29 36 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

あなたは '{'を1行につけています。これは、C#とHtmlが1行に混在しているため動作しません。開いているハンドルバー/ squiggle/brace/bracket/thingamabobの下の行に ''を入れてから、CTRL + K、CTRL + F(またはCTRL + K、CTRL + D ...オートフォーマットのホットキーが何であれ) – Bardicer

答えて

15

あなたがこの問題を開始する前に、あなただけのReSharperのがインストールされていることを述べましたあなたの問題はResharperによって引き起こされる可能性が最も高いです。

デフォルトでは、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

私は同様の問題を抱えていましたが、私のケースでは、すでに@startedコードブロック内の '@ * ... * @'コメントブロックでした。 '@ * ...'のコメント表記を伝統的な '//'に置き換えました。 –

関連する問題