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でも同じ現象になるので、対応策で逃げることにしています。