4

0 から 10 までの数字のドロップダウン リストを作成したいと思います。したがって、ユーザーは何かを評価できます。現時点では、次のラベルがあります: @Html.LabelFor(model=> model.RATE) ドロップダウン ボックスを表示するこのコードを変更するにはどうすればよいですか? そして、ドロップダウン ボックスの値が model.RATE に格納されることを確認しますか?

ラベルは機能していますが、ドロップダウン メニューがある方がはるかに優れています。

解決:

@Html.DropDownListFor(model => model.RATE, Enumerable.Range(0,11).Select( x => new SelectListItem { Text = x.ToString() }));
4

3 に答える 3

4
@Html.DropDownListFor(model => model.RATE, new SelectList(Enumerable.Range(0, 11)))

これにより、フォームへのデータバインディングとフォームからのデータバインディングが行われます

于 2012-05-22T20:25:55.890 に答える
4

SelectListItem評価を含むオブジェクトのリストを作成Html.DropDownListForし、モデルに保存されている評価と共に使用します ( Model.RATE)。

@{
    var ratings = new List<SelectListItem>();
    for( var i = 0; i <= 10; i++ ) {
        days.Add( new SelectListItem { Text = i.ToString(), Value = i.ToString(), Selected = Model.RATE == i } );
    }
}
@Html.DropDownListFor( x => x.RATE, ratings )
于 2012-05-22T20:26:19.477 に答える
1
@Html.DropDownListFor(m => m.RATE, Model.RateSelectList, "<- Select Option ->")

Model.RateSelectList は IEnumerable<SelectListItem> 型になり、m.RATE は null 許容整数 (int?) プロパティになります。3 番目のパラメーターは、m.RATE が null の場合に表示されるデフォルトのテキストです。

于 2012-05-22T20:28:23.383 に答える