0

Razor View Engine を使用する MVC 4 プロジェクトがあり、奇妙なことがわかりました。ビュー
に次のコード行があります。

@Html.DropDownListFor(model => model.TypA.Enum, Html.GetEnumList())

これは正常に機能します (有効なアイテムを含む をHtml.GetEnumList()返します) が、現在、ループで表示/編集しList<SelectListItem>ているリストがあります。TypeAfor

@for(int i = 0; i < Model.ListOfA.Count; ++i)
{
    @Html.DropDownListFor(model => model.ListOfA[i].Enum, Html.GetEnumList())
}

この場合、既存のアイテムを編集すると、最初のケースのように、ドロップダウンで現在の値が事前に選択されません。値を手動で変更してサーバーに戻すと、リスト内の各オブジェクトに正しい値が設定されます。

ここで事前選択が機能しない理由を知っている人はいますか?

今のところ、現在の値を に提供し、それに応じてプロパティをにGetEnumList(model.ListOfA[i].Enum)設定することで回避策を実行しましたが、最初のケースでは機能するため、これは必要ないと思います...SelectedtrueSelectListItem

4

2 に答える 2

0

これは過去に私に起こりました.ViewBagにオプションを入力していました.デフォルトのオプションをselected = trueに設定したことを確認すると、これはなくなりました.

var customers = new List<SelectListItem> { 
        new SelectListItem
        {
            Selected = true,
            Text = "Select one",
            Value = ""
        }
};
customers.AddRange(otherCustomers);
ViewBag.Customers = customers;
于 2013-04-14T23:00:57.020 に答える