3

MVC3 DropdownListFor モデル プロパティを選択した値にバインドしない これが私のビューです

@{var items = new List<SelectListItem>(){
                            new SelectListItem {Text = "2", Value = "2", Selected = true},
                            new SelectListItem {Text = "3", Value = "3", Selected = false},
                            new SelectListItem {Text = "4", Value = "4", Selected = false},
                            new SelectListItem {Text = "5", Value = "5", Selected = false}
                        };

        }   
@Html.DropDownListFor(x => x.InvoiceItem.Count, new SelectList(items, "Value", "Text"))

InvoiceModel には InvoiceItem クラスというプロパティがあり、さらに int 型のプロパティ Count があります。count プロパティは常に 0 であり、ドロップダウンから選択された値に更新されていません。

私はすでにこれに何時間も費やしています。ありがとうございました。


回答ありがとうございます。しかし、私にはまだ問題があります。

@Html.DropDownListFor(x => x.InvoiceItem.Count, new SelectList(items, "value", "text", 2)) を使用しました

@Html.DropDownListFor(x => x.InvoiceItem.Count, new SelectList(items, "value", "text", "2")) も試しました

Count プロパティは常に 0 です。ここで何が欠けていますか。

4

5 に答える 5

2

使用する:

new SelectList(items, "value", "text", selectedvalue);

元:

@{var items = new List<SelectListItem>(){
                                new SelectListItem {Text = "2", Value = "2"},
                                new SelectListItem {Text = "3", Value = "3"},
                                new SelectListItem {Text = "4", Value = "4"},
                                new SelectListItem {Text = "5", Value = "5"}
                            };

            }   
    @Html.DropDownListFor(x => x.InvoiceItem.Count, new SelectList(items, "Value", "Text", 2))
于 2013-07-03T20:56:13.890 に答える
1

これは、Model.InvoiceItem.Count (DropDownListFor の最初の引数) の現在の値が、SelectList で選択した値をオーバーライドしているためです。

ビューモデルの現在の値を使用して、モデルエラー後にこの値を設定できるようにするためです。

この問題の解決策は、Cyber​​drew によって既に投稿されています。デフォルトで選択された値を表す SelectList コンストラクターの 3 番目のパラメーターを使用する必要があります。

@Html.DropDownListFor(x => x.InvoiceItem.Count, new SelectList(items, "Value", "Text", 2))
于 2013-07-03T21:27:42.003 に答える