MVC3では、コントローラーにこのコードがあります。インストールテーブルからID\Namesのリストを取得し、ViewBagを作成します
var vs = dba.Installation.OrderBy(q => q.InstName).ToList();
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName");
今、私の見解では。ドロップダウンリストにリストを表示したい。正常に動作するHtmlヘルパーを使用しました...
@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -")
「-Selectone-」というテキストではなく、ViewBagリストの最初の項目をデフォルトの選択値として設定する必要があります。
どうすればいいですか?
前もって感謝します!
4つの引数を取るSelectList
コンストラクターのオーバーロードがあります。最後のものは、デフォルトで選択されたオブジェクトです。例えば:
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue);
ここで、selectedValue
は、リストにあるあらゆるタイプのオブジェクトです。
「-Selectone-」というテキストではなく、ViewBagリストの最初の項目をデフォルトの選択値として設定する必要があります。
次に、リストの最初のアイテム(vs
)を選択し、そのIDを取得して、SelectListのselecedValue
として使用する必要があります。
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName",
vs.FirstOrDefault().InstId);
ドロップダウンリストのヘルパークラスを作成することもできます。ソリューション内のすべてのドロップダウンリストのデフォルトのテキストとしてテキストを設定するメソッドがあります。