トラブルシューティング "System.int32" vs. "Ienumerable" Errors in dropdown lists
ドロップダウンリストを使用してフォームを送信すると、タイプの不一致を示すエラーが発生する場合があります。
ViewData
IEnumerable
根本原因:nullカテゴリリストSystem.Int32
これは通常、ビューモデル内のプロパティ(例:)がフォームが送信されたときに
になるために発生します。 このプロパティに依存して、ドロップダウンリストを入力します。CategoryList
ソリューション:POSTメソッドのカテゴリリストを再駐在させますProjectVM解決策は、ビューを返す前に、コントローラーのポストアクション方法内のnull
プロパティを明示的に再貯めているViewData
です。 これにより、正しい
。 投稿方法を変更する方法:
この行を追加すると、を再作成し、CategoryList
に割り当てます。 これにより、必要なヘルパーに必要なデータを提供します。
IEnumerable
ViewData
それがどのように機能するか:Viewdataとselectlist
<code class="language-csharp">public ActionResult Create(ProjectVM model) { if (!ModelState.IsValid) { // Repopulate the CategoryList model.CategoryList = new SelectList(db.Categories, "ID", "Name"); return View(model); } // ... (Your existing code to save the model and redirect) ... }</code>
)は、適切なSelectList
データを見つけようとします。 A IEnumerable
のデータを探します。 DropDownListFor()
アイテムが
以上がドロップダウンリストが「System.Int32」対「IENUMERABLE」エラーを投げるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。