VS2010 Ultimate、ASP.NET MVC 3 w/Razor。
MVC3 アプリで、ネストされた領域を許可するカスタム ビュー エンジンを作成しました。
~/areas/admin
/marketing
/views
index
/controllers
marketingController
/email
/views
index
...
/controllers
emailController
/templates
/views
index
edit
...
/controllers
templatesControler
等
標準の場所にないビューでインテリセンスを失ったように見えることを除いて、これはすべてうまく機能します~/areas/area_name/views/myview.cshtml
。
助言がありますか?
アップデート
ひばりに @inherits ステートメントを追加しました
@inherits System.Web.Mvc.WebViewPage<Namespace.Models.Class>
そしてインテリセンスが働き始めました。その後、ステートメントを削除しましたが、引き続き機能します。
ファイル拡張子以外に、開いているファイルにどの種類のインテリセンスを適用するかを Visual Studio に指示するプロジェクト ファイルまたは何かの設定はありますか? (拡張機能が使用されたすべてである場合、私はそれがはるかに一貫性があると期待しています)。
更新 2
各ビュー フォルダーに web.config を追加すると問題はかなり解決しますが、かみそりの構成をルート web.config に配置しても問題は解決しません。
system.web.webPages.razor
に必要なセクションを追加した後~/web.config
、
- 入れ子になったビュー フォルダーの 1 つに Razor .cshtml ビュー ファイルを追加します。
- インテリセンスは動作します。
- ファイルの名前を変更します (.cshtml 拡張子を保持します)
- Intellesense と構文の強調表示が機能しなくなります。
- 名前を変更したファイルを閉じて、もう一度開きます。すべてが再び機能し始めます。
- または、ファイルを閉じて再度開く代わりに、名前を元の名前に戻すと、再び機能し始めます。
これはVSのバグのように感じます.ファイルの名前を変更しても(ただし、適切な拡張子を維持して)、私が知る限り、この種の動作を引き起こすべきではありません. 問題を修正するため、各ビュー フォルダーに個々web.config
の を配置し続けますが、他の web.config 設定と同様に、これらの設定がソリューション ツリー全体に反映されると予想される場合に、ソリューションを乱雑にする必要があるのは面倒です。
また、Razor 構成がどこにあっても、Intellesense が機能しているかどうかにかかわらず、サイトは引き続き正しく機能することにも注意してください。
解決済み
これは既知の問題であり、MVC3 RTM および VS2010 SP1 で修正されていることを Powers That Be から (信じられないほど迅速に) 知らされました。MVC3 のインストールを更新して SP1 を追加すると、この問題はなくなりました。