我有一个包含以下内容的viewmodel类:
public class PersonalDetailViewModel
{
public int TitleOfCourtesyId { get; set; }
[Display(Name = "Title of Courtesy")]
public IEnumerable<SelectListItem> TitlesOfCourtesy { get; set; }
public PersonalDetailViewModel(){
using(var db = new MyDbContext())
{
TitlesOfCourtesy = db.TitleOfCourtesies.ToList().Select(i =>
new SelectListItem
{
Text = i.TitleOfCourtesyName,
Value = i.ID.ToString(),
Selected = i.ID == TitleOfCourtesyId
});
}
}
}
这很好用,并将DB中的所有值加载到TitlesOfCourtesy
对象中。请注意,TitleOfCourtesyId
和TitlesOfCourtesy
都未标记为Required
。
我的视图有以下代码将此列表绑定到下拉列表:
@Html.ValidationSummary()
<div class="form-group">
@Html.LabelFor(m => m.TitlesOfCourtesy, new { @class = "control-label col-sm-4" })
<div class="col-sm-4">
@Html.DropDownListFor(m => m.TitleOfCourtesyId, Model.TitlesOfCourtesy, "Select", new { @class = "form-control", autofocus = ""})
</div>
<div class="col-sm-4">
</div>
</div>
但是在Submit
按钮上,客户端验证会提示我The TitleOfCourtesyId field is required.
。为什么?我在代码中没有将其称为Required
。我错过了什么吗?
感谢阅读。
答案 0 :(得分:0)
将其更改为int?
,(因为int
的默认值为零)