2014-04-12 48 views
0

我有一個包含以下內容的視圖模型類:asp.net的MVC 5 DropDownListFor空的第一項總是需要

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 
               }); 
     }    

    } 
} 

這工作得很好,並加載從數據庫中的所有的值到TitlesOfCourtesy對象。請注意,TitleOfCourtesyIdTitlesOfCourtesy均未標記爲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

將其更改爲int?,(因爲int有默認值爲零)

+0

是..這是問題。謝謝 – Aamir