質問

でもMVC1を使ってアプリケーションをMVC2センブリーズ?しるばかりではなく第3者ツールをしていたものがMVC2が、そんなものを使用その他のツールです。

役に立ちましたか?

解決

があった 重大な変更.

1.0 プロジェクトを 2.0 で実行したい場合、プロジェクトはさまざまな場所にあるものを探します。 したがって、アプリケーションを 2.0 に移行する必要があります。.

「壊れる」可能性のある変更は次のとおりです (プレビュー 2 の時点)。

プレビュー 2 での変更点

ヘルパーは、 MvcHtmlString 物体

ASP.NET 4 の新しい HTML エンコーディング式構文を利用するために、HTML ヘルパーの戻り値の型は次のようになりました。 MvcHtmlString の代わりに string. 。ASP.NET MVC 2 と ASP.NET 3.5 の新しいヘルパーを使用する場合は、HTML エンコーディング構文を利用できないことに注意してください。新しい構文は、ASP.NET 4 で ASP.NET MVC 2 を実行する場合にのみ使用できます。

JsonResult HTTP POST リクエストにのみ応答するようになりました

情報漏洩の可能性がある JSON ハイジャック攻撃を軽減するために、デフォルトでは、 JsonResult クラスはHTTPのみに応答するようになりました POST リクエスト。AJAX GET は、アクション メソッドを呼び出して、 JsonResult 代わりに POST を使用するようにオブジェクトを変更する必要があります。必要に応じて、新しい設定を行うことでこの動作をオーバーライドできます。 JsonRequestBehavior の財産 JsonResult. 。潜在的なエクスプロイトの詳細については、Phil Haack のブログのブログ投稿「JSON Hijacking」を参照してください。

Model および ModelType プロパティ セッター ModelBindingContext 時代遅れです

新しい設定可能 ModelMetadata プロパティがに追加されました ModelBindingContext クラス。新しいプロパティは、モデルと ModelType プロパティ。とはいえ、 Model そして ModelType プロパティは廃止されました。下位互換性のために、プロパティ ゲッターは引き続き機能します。彼らはに委任します ModelMetadata プロパティを使用して値を取得します。

プレビュー 1 の変更点

DefaultControllerFactory クラスの変更により、クラスから派生したカスタム コントローラー ファクトリが破壊される

この変更は、から派生するカスタム コントローラー ファクトリに影響します。 DefaultControllerFactory 。DefaultControllerFactory クラスは、 RequestContext プロパティを使用し、代わりにリクエスト コンテキスト インスタンスを保護された仮想メソッドに渡します。 GetControllerInstance そして GetControllerType.

カスタム コントローラー ファクトリは、ASP.NET MVC アプリケーションに依存関係の挿入を提供するためによく使用されます。

ASP.NET MVC 2 をサポートするようにカスタム コントローラー ファクトリを更新するには、新しい署名に一致するようにメソッド シグネチャを変更し、プロパティの代わりに要求コンテキスト パラメーターを使用します。

「エリア」は予約済みのルート値キーになりました

Route 値の文字列「エリア」は、「コントローラー」や「アクション」と同じように、ASP.NET MVC で特別な意味を持つようになりました。1 つの意味は、HTML ヘルパーに「エリア」を含むルート値ディクショナリが提供されている場合、ヘルパーはクエリ文字列に「エリア」を追加しなくなります。

エリア機能を使用している場合は、必ず使用しないでください。 {area} ルート URL の一部として。

既知の問題点

[厳密に型指定されたビューを作成する] チェック ボックスがオンになっており、[空] 以外の [コンテンツの表示] が選択されており、存在する型に対して View データ クラスの型名が指定されている場合、[ビューの追加] ダイアログ ボックスは NullReferenceException をスローします。タイプ名を指定する場合は、ドロップダウン リストを使用してタイプ名を選択するか、完全修飾タイプ名を入力します。存在しないタイプの場合は、「コンテンツの表示」を「空」に設定する必要があります。

他のヒント

この文書をチェックしてください。あなたは重大な変更について学びます: http://go.microsoft.com/fwlink/?LinkID=157072する

一gotchaと噛まれたすべての分野でのモデルは常に検証されいています。

この変更に記載するブラッド-ウィルソン こちらの.

スティーブ-アンダーソンのブログ を記述する問題は自分の好きなソリューション(カスタムバリデータ).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top