2013-04-30 22 views
9

MVC3では、私のコントローラにこのコードがあります。インストールテーブルからID \ Namesのリストを取得して、ViewBagを作成します。MVC3のDropDownListでデフォルトの選択値を設定する

var vs = dba.Installation.OrderBy(q => q.InstName).ToList(); 
ViewBag.Vessels = new SelectList(vs, "InstId", "InstName"); 

ここで私の見解では、私はドロップダウンリストにリストをレンダリングしたい。 「 - いずれかを選択 - 」テキストを私はデフォルトの選択値としてViewBagリストの最初の項目を設定し、代わりにする必要があります...

@Html.DropDownList("InstId",(SelectList)ViewBag.Vessels, "- Select one -") 

を正常に動作するHTMLヘルパーを使用していました。

どうすればいいですか?

ありがとうございます!

答えて

19

SelectListコンストラクタには4つの引数をとるオーバーロードがあります。最後のものは、デフォルトで選択されたオブジェクトです。例えば:selectedValueはあなたのリストにあるものの型のオブジェクトである

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", selectedValue); 

。私のようにViewBagリストの最初の項目を設定する必要が

+0

おかげ@WheretheresaWill。ああ、神様!私はその過負荷を認識しませんでした。愚かな私。 – equisde

+0

全く心配はありません! – WheretheresaWill

+0

ありがとう、それは私を助けました.... – shanish

0

ます。また、ドロップダウンリスト のためのヘルパークラスを作成することができますそれはあなたのソリューション内のすべてのDropDownListコントロールのデフォルトのテキストで、テキストを設定する方法があります

+0

ありがとう@ K2_KetuがWheretheresaと言ったように、このオプションを含む過負荷があります。 – equisde

4

デフォルトでは「 - 1つ選択」の代わりに の値が選択されています。

次に、あなたのリストの最初の項目(vs)を選択して、IDが取得し、SelectListのでselecedValueとしてそれを使用する必要があります。

ViewBag.Vessels = new SelectList(vs, "InstId", "InstName", 
    vs.FirstOrDefault().InstId); 
+0

ありがとう!それは同様に動作します – equisde

+0

あなたは大歓迎です。 –

関連する問題