この記事では、ASP.NET MVCで「「カテゴリ」のviewdataアイテムが「ienumerable」というタイプの「Ienumerable」でなければならない」エラーを修正する方法について説明します。 ヘルパーのドロップダウンリストは、IEnumerable
viewdataアイテムのSelectListItem
(通常はCategoryID
オブジェクトのコレクション)を期待しているため、エラーが発生しますが、代わりにint
を受信しています。 これは通常、ドロップダウンリストのデータがPOSTリクエスト中に適切に入力されていない場合に発生します。
コアの問題は、ドロップダウンにデータを提供する
ビューモデルのCategoryList
ビューモデルのプロパティが、ProjectVM
アクションのpostメソッドで更新されていないことです。 解決策は、CategoryList
ここにCreate
アクションメソッドを修正する方法:
Create
<code class="language-csharp">public ActionResult Create(ProjectVM model) { if (!ModelState.IsValid) { // Repopulate the CategoryList property model.CategoryList = new SelectList(db.Categories, "ID", "Name"); return View(model); } // ... (Your existing code to save the project) ... }</code>
がデータベースのコンテキストであると仮定)。 🎜>ヘルパー。 これにより、タイプの不一致を防ぎ、フォームの提出を成功させることができます。 model.CategoryList = new SelectList(db.Categories, "ID", "Name");
コンストラクターは、データソース、値フィールド( "ID")、およびテキストフィールド( "name")を取得します。 これにより、ドロップダウンが正しいカテゴリ名と値を表示します。
以上がなぜ私の「カテゴリインド」のviewdataアイテムが「キーの「カテゴリ」が「system.int32」というタイプの「viewdataアイテム」を引き起こしますが、タイプ「ienumerable」でなければなりません。」エラー?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。