2010-12-11 24 views
25

私はちょうどASP.NET MVC 3 RC2に更新しました。 CSHTMLビューがレンダリングされるたびに、私が働いているMVC 3にアップグレードされました:CS0103: 'View'という名前は現在のコンテキストに存在しません

サンプルアプリは今、次のエラーを生成します。

CS0103:名「ビュー」は現在のコンテキストで

存在しません。それは、上の失敗します行:

@{ 
    View.Title = "MyView"; 
} 

...他の場所ではエラーが発生し、Razorファイルのコードで表示されます。

web.configを新しいアプリケーションのViewフォルダからサンプルアプリケーションにコピーしましたが、問題は解決しません。

新しいアプリケーションは問題なく動作します。

また、ソリューションを再構築してClean Solutionを実行しました。喜びはありません。

私は数日間サンプルに取り組んでいません。だから、RC2とは関係のない問題かもしれません...

+0

参照を確認しましたが、それらは同じファイルバージョンであるようです。 EG:System.Web.Mvcファイルバージョン:3.11209.0 RC1を使って開発した私のサンプルアプリケーションとRC2を使って作成した新しいアプリケーション – awrigley

答えて

27

名前は「ViewBag」に変更されました。あなたはRC1からの変更点の詳細を読むことができます - > RC2 here

+0

ありがとう、私はScott Guthrieのブログ記事を見落としていました。なぜそれが奇妙だと思うか分かりません。ビューに論理を表示するのはいいです。サンプルの負荷はそれを使用します。私はViewBagは恐ろしい名前だと思うが、それは単純なViewよりも説明的だ。 – awrigley

+0

@awrigleyビューに表示ロジックを使用するのはいいですが、ViewBagは、通常、ビューで使用するためにコントローラで設定されるプロパティのコレクションであることを意図しています。 ViewBagのビュー内でデータを設定したいのはなぜか分かりませんが、私はそれから '読み込み'しか期待しません。 – jeroenh

+2

MVC3サンプルではそのコードが使用されています... – awrigley

4

私は同じ問題を抱えていたが、私はちょうど今、何を使用するかを推測してみました、私が使用して終了:、

@Page.Title = "The title" 

、それが働きました私は、「ベストプラクティス」は今

また、私はViewBagはViewModelににするために使用するものであると考えられているものを、私は場合にこれを追加している

0

を見るない誰にも出くわすかわからないけれどもそれ。別の考えられる原因は、レイアウトが見つからないことです。私はIISにデプロイし、(問題の行をコメントアウトした後で)、Web配置中にレイアウトがコピーされていないことがわかりました。私の場合は、レイアウトのBuild ActionがContentからNoneに変更されたためです。

EDIT:実際には、私はMVC 3 RCをインストールしました。上記はまったく異なる症状でした。デプロイメントマシンには問題を露呈させるRTMがありました。 awrigleyが言うように、今ViewBagと呼ばれています。

+0

に感謝しましたが、私の場合の問題はViewBagへのプロパティの名前変更でした。 – awrigley

関連する問題