2

注: 以下は単なる例です。

私は ASP.NET MVC にかなり慣れていないので、ドロップダウン リストの検証がどのように機能するかについて頭を悩ませようとしています。ProfileViewModelクラスに次のプロパティがあります。

[DisplayName("Gender")]
public bool? Gender { get; set; }

nulltrue女性とfalse男性の「不明」を意味します。ビュー モデル コンストラクターで I

AllGenders = new List<SelectListItem>(2)
             {
                 new SelectListItem {Text = "Unknown", Value = "null"},
                 new SelectListItem {Text = "Male", Value = "false"},
                 new SelectListItem {Text = "Female", Value = "true"}
             };

まず、 a にデータを入力するときに文字列を使用する必要があるようですがList<SelectListItem>、これはちょっと奇妙に感じます。これは本当にそれがどのように行われているのですか?

次に、リストで「不明」を選択すると、検証に失敗して次のように通知されます。

値「null」は性別には無効です。

何故ですか?「null」オプションを削除Genderして simple に変更するとbool、すべて問題ないようです。

これは ASPX です。

<%= Html.DropDownList("Gender", Model.AllGenders) %>

DropDownListFor(私は正しく動作することができず、他の多くの人が同じ問題を抱えているようです。)

どんな助けでも大歓迎です!

4

1 に答える 1

4
new SelectListItem {Text = "Unknown", Value = "null"},

する必要があります:

new SelectListItem {Text = "Unknown", Value = ""},

「」を投稿すると、nullがバインドされます。

于 2010-09-02T14:29:08.957 に答える