2012-08-24 12 views
8

は、だから私は、次の(擬似コード)を持っていますアイテムをアイテムに設定し、既に選択されているアイテムをマークしました。ビューに到達すると、選択肢のどれもが選択済みとしてマークされません。MVCのC#html.dropdownlistとviewbag

私の質問は、アイテムを渡すためにビューバックを使用することはできますか、私は別のメディアを使用する必要がありますか?私はそれを使用する場合、オプションで選択されたフラグを削除するので。

ViewBag.ListOfCodes = new SelectList(mymodelinstance.Codes, "Id", "Name"); 
ViewBag.Codes = "C"; 

とあなたのビューで:

+0

コントローラでブレークポイントを設定して、 'list'の少なくとも1つの項目に' Selected = true; 'というタグが付けられていることを再確認できますか?私はViewBagがあなたのリストを乱しているとは思わない。 – StuartLC

+0

はい、私はそれをして、それは正しいオプションをマークしています。 – gdubs

答えて

21

は次のように試してみてください

これは明らかにあなたが機能するために
<%= Html.DropDownList(
    "Codes", 
    (IEnumerable<SelectListItem>)ViewBag.ListOfCodes, 
    new { style = "max-width: 600px;" } 
) %> 

はこのように、あなたのコレクション内のID = "C" でアイテムを持っている必要があります。

+0

このうち「コードC」を選択する部分は? – gdubs

+1

これは、 'ViewBag.Codes =" C ";'です。ビューでは、DropDownListヘルパーの最初の引数としてコードを使用したので、ViewBagから値を取得します。あなたがビューモデルと強く型付けされた 'DropDownListFor'ヘルパーを使い、私がいつも人々に勧めているViewBagを忘れていたなら、明らかに何百万回も明らかになっていました。 –

+0

私は同意する、私もそれを行うだろう。このシナリオでは、このリストの値は別のドロップダウンリストの別の値に追加され、インスタンスに書き込まれます。私はそれが異なってモデル化されてほしい.. – gdubs

関連する問題