前提
前回の質問で
https://teratail.com/questions/iuigiyod3mzyma
ドロップダウンリストを作成し、決まっている値を選択し、検索することができました。
現在の画面では備品マスタの一覧画面とテキストボックス、プルダウンリスト、検索ボタンが表示されています。
実現したいこと
ドロップダウンリストの選択リストに決まった値ではなく、備品マスタの備考カラムの内容が表示されるようにしたいです。
前回の質問でList<String>にSELECT文(SELECT DISTINCT Bikou FROM Bihin)が取得できれば良いと教えていただきました。
そこでList<String>にSELECT文を取得する方法を教えていただきたいです。
発生している問題・エラーメッセージ
Index.cshtml
@using (Html.BeginForm()) { <p> Find by name: @Html.TextBox("SearchString") <br /> @Html.DropDownList("DropDown", null, "未選択", htmlAttributes: new { @class = "form-control" }) <input type="submit" value="Search" /> </p>
該当のソースコード
BihinController
c#
1 public ActionResult Index(string searchString, string dropDown) 2 { 3 // DB に SELECT DISTINCT Bikou FROM Bihin を投げて以下の 4 // データが取得できたとすると 5 var data = new List<string> { "2階", "1階", "緑" }; 6 7 // 上のデータから List<SelectListItem> を生成 8 var list = new List<SelectListItem>(); 9 foreach (var str in data) 10 { 11 var item = new SelectListItem { Text = str, Value = str }; 12 list.Add(item); 13 } 14 15 // DropDownList には ViewData または ViewBag を使って渡す 16 ViewData["DropDown"] = list; 17 18 return View(); 19 }
試したこと
Controllerの
var data = new List<string> { "2階", "1階", "緑" };
この部分にList<String>にSELECT文を取得できれば良いと前回のスレッドで教えていただきました。
補足情報(FW/ツールのバージョンなど)
データベースはSQLServerです。
備品マスタ
物品名 | 数量 | 備考
洗剤 | 2 | 二階
ティッシュ | 1 | 箱
・・・
ドロップダウンリスト ↓
二階
箱
・・・
(データベースが更新されたらもちろんドロップダウンリストの選択リストも更新されます)
ASP.NET MVC
Windows 10 Pro,
Visual Studio2022 Version 17.3.2
.NET framework 4.7.2
EntityFrameworkは使用しません。