Visual Studio 2022 ASP.NET Core MVC アプリをフレームワーク .NET 6.0 で作成しています。
モデルのデータをリストボックスに表示させたいと思っています。
しかし、@Html.ListBoxForの使い方があまりネットに落ちていなく困っています。
@Html.DropDownListForは表示できましたが、リストボックスで表示しようとすると
「複数選択が許可されている場合、パラメーター'expression'はIEnumerableに評価される必要があります」
と出てしまいます。
//HTML @Html.ListBoxFor( model => model.IngredientsName, // プロパティ (IEnumerable<SelectListItem>)ViewBag.PlanmIngredient, // 選択オプ new { @class = "select2_multiple form-control" , @id = "IngredientsName} // その他の属性 ) //Controller public async Task<IActionResult> Edit(int? id) { ViewBag.PlanmIngredient = _context.MIngredients.ToArray().Select(m => new SelectListItem() { Value = m.Id.ToString(), Text = m.IngredientsName }); if (id == null) { return NotFound(); } var mIngredient = await _context.MIngredients.FindAsync(id); if (mIngredient == null) { return NotFound(); } return View(mIngredient); } //Model public string IngredientsName { get; set; } = null!;
追記
SurferOnWww
DropDownListFor では何故ダメなのですか? 複数項目を選択できるようにしたいからですか?それとも単に見かけの問題だけで選択できる項目は単一でよいが、ドロップダウン形式でクリックして開いて項目を表示するのではなく、箱 (ListBox) に複数項目を表示し箱に収まらない項目はスクロールして見る形にしたいということですか?
tomokia
引用テキスト複数項目選択できるようにしたいからです。
DropDownListFor では何故ダメなのですか? 複数項目を選択できるようにしたいからですか?
それとも単に見かけの問題だけで選択できる項目は単一でよいが、ドロップダウン形式でクリックして開いて項目を表示するのではなく、箱 (ListBox) に複数項目を表示し箱に収まらない項目はスクロールして見る形にしたいということですか?
複数項目選択できるようにしたいからです。
質問欄を編集して追加情報として追記願います。
ところで、それを受けるアクションメソッド側では複数の選択項目を受けとるための対応はされているのですか?
ListBoxForは複数取得したい場合ですのでその追加情報は必要ないかと思いますが...
受け取る側について、一切いじっていませんでした。参考サイト等ありましたら教えてください。
> ListBoxForは複数取得したい場合ですのでその追加情報は必要ないかと思いますが...
いや、書いてください。
上のコメントに書きましたが、「それとも単に見かけの問題だけで選択できる項目は単一でよいが、ドロップダウン形式でクリックして開いて項目を表示するのではなく、箱 (ListBox) に複数項目を表示し箱に収まらない項目はスクロールして見る形にしたい」ということかもしれないと想像してました。なぜなら、Edit で複数項目の選択を行うことは考えにくいから。回答者がそういう無駄な想像をしなくて済むよう書いてください。
承知しました
引用は文の頭に > を付けてください。
回答1件
あなたの回答
tips
プレビュー