2011-06-27 53 views
0

ViewDataを使用してコントローラからビューにデータを渡すと、ビューのViewDataプロパティを参照するときにタイトルにエラーが表示されます私はかみそりビューエンジンを使用しています解決方法 "名前 'ViewData'は現在のコンテキストに存在しません"

、そこの周りにこれに関連するいくつかの記事がありますが、それらは、Webフォームの実装に関連すると思われる

私はカミソリが参照されている方法に問題がある疑いがある:私の設定ファイルを多くの警告があります。

enter image description here

これらのタイプの参照が警告している:無効なモジュール資格:アセンブリSystem.Web.WebPages.Razorを解決することができません

一般的なMVCのものは(のみのモデルの参照を使用して)OK作業していないが、ViewDataをにアクセスしようとしている - 運

+0

厳密に型指定されたビューやビューモデルではなく、 'ViewData'を使用する特別な理由はありますか?私には何も見えないので。 –

+0

いいえ - 私はMVCを一般的に試しています。私はあなたの点を取る。 –

答えて

3

MVC3 ViewBagが追加されました。これは、ViewDataを中心とした動的ラッパーです。へのDateTime、ポストにViewBag.Post、およびViewBag.TagsにViewBag.Dateをキャストするために、私たちが持っていないされてViewDataを介してViewBagを使用してのクールなメリットの

ViewBag.Title = "Test"; 

ワン:今、あなたはそのようなものを使用することができますそれらを使用する前の文字列配列これにより、ビュー内のノイズが削減されます。

しかし、Darinがコメントに述べたように、強く型付けされたビューを使用することが最善です。

web.configで表示されるエラーは、それとは関係ありません。しかし、私はこれらのエラーの正確な原因は何か分かりませんが、アプリケーションの実行には影響しないようです。

+0

@Thomas Jaskula、ViewDataは下位互換性のためにMVC3でも引き続きサポートされています。 –

+1

'ViewData'の名前が' ViewBag'に変更されていません。 「ViewBag」がASP.NET MVC 3に追加されました。これは、正しく設計されたASP.NET MVCアプリケーションでは、これらの2つの概念のどれも使用されるべきではないと言われています。厳密に型指定されたビューとビューモデルは、正しい方法です。 –

+0

はい、それはViewDataのまわりの動的ラッパーです –

関連する問題