MVC3 では、DropDownListFor を使用する場合、最初のパラメーターが文字列である必要がありますか? 私は次の設定をしています:
@Html.DropDownListFor(m => m.MyListItemId, Model.MyListItems,
new Dictionary<string, object>
{
{ "style", "width:120px" },
{ "data-type", "myList" }
})
m.MyId はビューモデルの int です。ドロップダウン リストで選択したアイテムを変更し、レンダリングされた html を検査すると、「選択された」プロパティが新しく選択されたアイテムに設定されないという問題があります。jquery clone 関数を使用してその行をコピーしているため、これは問題であり、新しい選択項目を含むリストを新しい行にコピーする必要があります。アイデア?
更新- ビューモデルのプロパティを文字列に変更しても違いはありません。これは mvc dropdownlistfor のバグですか? 同様の問題に関するかなりの数の投稿を読みましたが、この場合に機能する解決策が見つからないようです。これは私のリストが私のコードでどのように設定されているかです:
var myListItems = _myRepository.GetAll();
model.MyListItems = new SelectList(myListItems, "Id", "Name", lineItem.myListItemId);
model.MyListItemId = lineItem.myListItemId;
lineItem がこのメソッドに渡される場所