以下のコードは、整数値の束をドロップダウンに入力し、現在選択されている値(この場合は13)を選択項目にすることを目的としています。SelectedItemがASPNET.MVCのSelectListに記憶されていない
私は同じテクニックを使用しましたが、文字列の値に対しては、現在の値が何であるかを表示するたびに覚えています。
var x = new[] { 1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
ViewData["Field"] = new SelectList(x, 13);
鑑み:コントローラで
は
<%=Html.DropDownList("Field", (IEnumerable<SelectListItem>)ViewData["Field"])%>
IデバッグとViewDataを[ "フィールド"]オブジェクトを見て、それは13のSelectedValueのを持っているので、それがなければなりませんビューに到達しましたが、ページに表示されているすべての値が1〜15の値でドロップダウン表示されますが、1が表示されます(選択されていないので最初のものが表示されます)
これはバグですか?本当にばかげた何か?
グレアム
ありがとうございました!神はそれがなぜ文字列バージョンと異なるのかを知っていますが、あなたの解決策は治療法です!ありがとう!! – Graeme
これは正しい方法です。最初のパラメータは、値を添付するフィールド名です。これは、selectlistitemデータを渡すために使用するメカニズムとは異なります。同じキーを使用することで、少しのデータで二重の義務を果たしているので、うまく動作しません。 しかし、私はそれが設定されている場合、選択されたプロパティを使用することを確信しています。これは設定しません。 – Mallioch
私は以前のバージョンのコードを覚えておく必要があります。私はちょうどチェックし、Selectedプロパティを使用しますが、ビューからデータを取得するかどうかに基づいてアイテムの選択されたプロパティをリセットするいくつかの条件があります。私はまだこれがドロップダウンを処理する最善の方法であるかどうかについていくつかの研究をしなければならないでしょう。 – tvanfosson