在NHibernate中使用MVC3時,我遇到了下拉問題。我有一個用於用戶輸入的各種字段的表單,並且只對特定的select元素有問題。MVC3 DropDownListFor模型綁定正確,但未選擇模型值
我的問題是,即使模型被綁定並在帖子上正確保存,視圖加載時模型的屬性值也不會顯示爲選中狀態。令人奇怪的是,MainPopulationFocus(下面的代碼片段)下拉菜單正常工作,而MilitaryService下拉菜單則不正確。
型號 - 兵役標籤和下拉
@Html.LabelFor(m => m.MilitaryService, "Military Service")
@Html.DropDownListFor(m => m.MilitaryService, ViewBag.MilitaryService as IQueryable<SelectListItem>, "", new { style = "width: 140px" })
HTML
<label for="MilitaryService">Military Service</label>
<select id="MilitaryService" name="MilitaryService" style="width: 140px">
<option value=""></option>
<option value="1028">Active</option>
<option value="1029">Reserve</option>
<option value="1030">National Guard</option>
<option value="1031">Retired Military</option>
</select>
同樣的觀點 - - 主要人口的重點標籤和下拉
問題public virtual System.Int32? MilitaryService { get; set; }
public virtual System.Int32? MainPopulationFocus { get; set; }
視圖屬性的聲明
@Html.LabelFor(m => m.MainPopulationFocus, "Main Population Focus")
@Html.DropDownListFor(m => m.MainPopulationFocus, ViewBag.MainPopulationFocuses as IQueryable<SelectListItem>, "", new { style = "width: 140px" })
HTML
<label for="MainPopulationFocus">Main Population Focus</label>
<select data-val="true" data-val-number="The field MainPopulationFocus must be a number." id="MainPopulationFocus" name="MainPopulationFocus" style="width: 140px">
<option value=""></option>
<option value="808">Education</option>
<option value="809">Policy</option>
<option selected="selected" value="810">Clinical Practice</option>
<option value="811">Research</option>
</select>
控制器 - 獲取從服務層對象列表和列表保存到ViewBag
.Select(s => new SelectListItem() { Text = s.Display, Value = s.ID.ToString(), Selected = (s.ID == fellowsProfile.MilitaryService) });
的MainPopulationFocus下拉完美的作品,而選擇了MilitaryService下拉值綁定到模型並保存在數據庫中,但不顯示視圖加載時選擇的值。
我知道在模型和下拉列表中使用相同的名稱時存在問題,但我避免了這種情況。我認爲這可能與我組建清單的方式有關。
感謝您的任何可能的幫助/建議。