0

DropDownListFor の値を検証したいのですが、うまくいきません。クライアント側の検証に必要なスクリプト ファイルも含めました。

ViewModel で:

public class SearchViewModel
{
    public List<MarriageProfile> Profiles { get; set; }
    public SearchProfile SearchProfile { get; set; }
}

public class SearchProfile
{
    [Required(ErrorMessage="*")]
    public SelectList Ages { get; set; }
    public string Age { get; set; }
}

コントローラーで:

var ages = AgeList
           .Select(p => new SelectListItem()
           {
               Text = p.ToString(),
               Value = p.ToString()
           }).ToList();

SearchViewModel.SearchProfile.Ages = new SelectList(ages, "Text", "Value");

static List<string> AgeList = new List<string>()
{        
    "18-23",
    "23-28",
    "28-33",
    "33-38",
    "38-43",
    "43-48"
};

ビューで:

@Html.DropDownListFor(model => model.Age, Model.Ages, "--Select One--", new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Age)

フォームを送信すると、上記のドロップダウンリストに対してクライアント側またはサーバー側の検証が機能しません。コードのどこが間違っている可能性がありますか?

4

1 に答える 1

1

リストではなく属性でAgeプロパティにタグを付ける必要があるようです。この回答を確認してください: ASP.NET MVC 3 and validation attribute for dropdownlist with default value of 0RequiredAges

于 2013-08-29T13:11:43.737 に答える