Razor View throwing "The name 'model' does not exist in current context"

MVC 4アプリケーションの大幅なリファクタリングの後、RazorがViewsのデバッグ中にこのエラーを表示しました。

The name 'model' does not exist in the current context.

これが問題となっているコードです。

@model ICollection<DataSourceByActive>

私は @model の使い方が正しいことを知っています。

なぜこのようなことが起こるのでしょうか?どうすれば直せますか?

ソリューション

Viewsフォルダの中にあるweb.configファイルがおかしくなっているのではないでしょうか。

同じ.NETフレームワークをターゲットにした新しいプロジェクトを作成し、そのViews/web.configファイルを現在のプロジェクトのものの上にコピーしてください。これで問題は解決します。

また、Dudeman3000がコメントしているように、MVCプロジェクトにAreaがある場合、それらはすべてViews\web.configファイルを持っています。

解説 (11)

サイトの Web.config とビューのディレクトリ Web.config の両方で、appSettings セクションに以下の内容が記述されていることを確認してください。


MVC5の場合はこちらを使用します。

(そして、これはメインの Web.config ファイルにのみ存在します。)

解説 (7)

私も同じ問題を抱えていました。新しいプロジェクトを作成し、Gupta氏の回答で推奨されているようにweb.configファイルをコピーしましたが、私の場合はそれだけでは解決しませんでした。AlexとLiamの回答を確認したところ、この行は新しいweb.configからコピーされたに違いないと思いましたが、新しいプロジェクト自体にはこの行がなかったようです(MVC5)。

この行をviews/web.configファイルに追加することで、私の場合は問題が解決しました。

解説 (1)