2

次のようなプロパティを持つモデルがあります。

[Required]
public int SingleSelect { get; set; }

コントローラーで SelectList を設定し、それをビューバッグに渡すよりも

public ActionResult Index()
    {
        ViewBag.SingleSelectList = new SelectList(new[]
                                      {
                                          new {ID="0",Name="-- Select --"},
                                          new {ID="1",Name="Select 1"},
                                          new{ID="2",Name="Select 2"},
                                          new{ID="3",Name="Select 3"},
                                      },
                        "ID", "Name", 0);


        return View();
    }

次に、View() で、次を使用して素敵なドロップダウン ボックスをレンダリングします。

@Html.LabelFor(obj => obj.SingleSelect, new { @class = "control-label"})
@Html.DropDownListFor(obj => obj.SingleSelect, ViewBag.SingleSelectList as SelectList)
@Html.ValidationMessageFor(obj => obj.SingleSelect)

<button class="btn btn-primary" type="submit">Validate!</button>

ユーザーがフォームの送信時に選択を行っていない場合 (オプション "-- Select --" のまま)、エラーを表示して検証を機能させるにはどうすればよいですか?

4

1 に答える 1

2

最初に2つのアプローチを試すことができます

[Required, Range(1, Int32.MaxValue)]
public int SingleSelect { get; set; }

または SelectList を変更します。

ViewBag.SingleSelectList = new SelectList(new[]
{
    new {ID="0",Name="-- Select --", Value=""},
    new {ID="1",Name="Select 1"},
    new{ID="2",Name="Select 2"},
    new{ID="3",Name="Select 3"},
},
"ID", "Name", 0);
于 2013-06-11T19:58:16.317 に答える