8

モデルがジェネリック型の場合、Visual Studio 2012で(Ctrl + K + Dを使用して)Razor cshtmlファイルをフォーマットする場合、VSではすべて小文字になります。例えば:

@model IEnumerable<Content>

に変換します(すべて小文字の内容を考慮してください):

@model IEnumerable<content>

フォーマット後。これにより、コードがコンパイルされなくなります。これはバグですか、それとも何かが足りませんか?どうすれば修正できますか?

4

3 に答える 3

11

この問題は、Visual Studio 2012がレイザーコードとして認識せず、通常のHTMLとして処理することによるものです。これはVS2012のバグであり、すぐに修正されることを願っています。一時的な修正として、これを行うことができます:

  1. 後藤ツール->オプション
  2. [テキストエディタ]->[HTML]->[フォーマット]を選択します
  3. [クライアントタグ]ドロップダウンを[入力したとおり]に設定します

お役に立てれば。

于 2012-10-02T16:01:43.637 に答える
2

これがVS2012の新しいプロジェクトである場合は<appSettings>、メインweb.configファイルのセクションに次のコード行を追加する必要があります。

<add key="webpages:Version" value="1.0.0.0"/>

これが既存のプロジェクトである場合は、おそらくすでにそのキーがにありますweb.config1.0.0.02.Xや1.2.Xではなく、バージョン用であることを確認してください

また、へのプロジェクト参照System.Web.WebPagesがバージョン用1.0.0.0であり、ではないことを確認してください2.0.0.0

これらの変更を行った後、VisualStudio2012を閉じて再度開く必要があります。

于 2012-10-02T16:37:21.650 に答える
0

以下は、Visual Studio Professional 2012、ASP.NET MVC 5、および Microsoft.System.Web.WebPages 3.0 で機能しました。

<add key="webpages:Version" value="3.0.0.0" />

しかし、この解決策はすぐには機能しませんでした

最初に、次に関する Chris Haddox のソリューションwebpages:Version:

<add key="webpages:Version" value="1.0.0.0"/>

私にはうまくいきませんでした。私はすでにこのキーを持っていて、1.0.0.0 に設定されていました。

しかし、私はVisual Studio Professional 2012 を使用しているので、ASP.NET MVC 5 と Microsoft.System.Web.WebPages 3.0 ...

この問題は、Web.Configwebpages:Versionが に設定されていることを示していました。Microsoft.System.Web.WebPages 3.0 に適している可能性のある別の記事を読んで、しばらくフォーマットのバグが残っていたため1.0.0.0、に変更しました。3.0.0.0

.cshtml ファイルの編集を続けました。その後、突然のフォーマットがすべて正しく機能し始めました。たぶんビルドからかもしれませんが、ビルドを行ったとは思いませんが、確かではありません。また、Visual Studio 2012 を再起動していないこともわかっています。

于 2015-12-05T00:47:08.703 に答える