asp.net MVCビューエラー:不一致モデルタイプ
エラー「辞書に渡されたモデルアイテムは「バー」のタイプですが、この辞書にはasp.net MVCのタイプ「foo」のモデル項目が必要です」は、ビューに送信されたデータとビューの予想データ型。 ビューはタイプFoo
のモデルを期待していますが、タイプBar
。
1。コントローラーからビューモデルの不一致:
最も一般的な原因は、間違ったタイプのモデルを返すコントローラーアクションメソッドです。 ビューにオブジェクトが期待されている場合、コントローラーはFoo
。
Foo
return View(fooObject);
2。マデルのビューの表示モデルの不一致:
同様に、ビューが部分ビューを使用する場合、部分ビューに渡されたデータは、予想されるモデルタイプと一致する必要があります。 オブジェクトが
オブジェクトを期待する部分ビューにオブジェクトを誤って渡すと、このエラーがトリガーされます。
Foo
Bar
3。レイアウトの矛盾するモデル:
レイアウトがモデルを定義する場合、そのレイアウトを使用するすべてのビューは、互換性のあるモデル(同じタイプまたは派生タイプ)も定義する必要があります。 ここでの不一致はエラーを引き起こします。
ソリューション:
キーは、アプリケーション全体で一貫したモデルタイプを確保することです。1。正しいコントローラーからビューモデルの合格:
コントローラーのアクションが正しいモデルタイプを返していることを確認してください:
2。正しいビューから特別なビューモデルの合格:
部分的なビューを呼び出すときにモデルタイプを明示的に指定します:
<code class="language-csharp">public ActionResult MyAction(int id) { Foo fooModel = db.Foos.Find(id); // Fetch a Foo object return View(fooModel); // Pass the Foo object to the view }</code>
3。レイアウトでの競合モデルの処理:
レイアウトに個別のモデルが必要な場合は、
を使用して、必要なモデルと部分的なビューを提供する子のアクションをレンダリングします。<code class="language-csharp">@{ Html.Partial("_BarPartial", Model.BarProperty); // Pass the Bar object }</code>
コントローラーとビューのモデルタイプを慎重に確認し、レイアウトと部分ビューでモデルを処理するための適切な手法を使用して、この一般的なASP.NET MVCエラーを効果的に解決できます。
以上がなぜ私のASP.NET MVCビューは「辞書に渡されたモデルアイテムがタイプバーのものですが、この辞書にはタイプFOOのモデルアイテムが必要ですか?」エラーが必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。