dainousanの主にメモ

Sier勤務の30代の適当な日記です

DropDownListForがいうこと聞か無い時

razorでDropDownListを作るときに、DropDownListForをよく使います。

@Html.DropDownListFor(m => m.iro ,iroitem);

結果、

<select>
<option></option>
<option value="赤"></option>
<option value="だいだい">だいだい</option>
</select>

が出力されます

ここでですよ、

個数
りんご 1
みかん だいだい 2

な表形式で入力する場合もありますよね?

ここで、色をDropDownListにしようと思います。

Html.DropDownListFor(m => m.hoge[i].iro ,iroitem);

だいたいが、こんな感じですよね?

ここでやっかいなのは、

Html.DropDownListFor(m => m.hoge[i].iro ,iroitem);

は、うまいこと動いてくれない。

ソースを追っかけようかと思ったが、面倒なのでとりえあず対応策

@Html.DropDownListFor(m => m => m.hoge[i].iro, Model.irolist.Select(n =>
        new SelectListItem()
        {
            Value = n.Value,
            Text = n.Text,
            Selected = n.Value == Model.hoge[i].iro
        }), "", new {})

になります。

MVC4、5でも同じ現象になるので、対応策で逃げることにしています。