我想添加另一个下拉列表。以下代码适用于一个下拉列表,但我如何为类别添加一个?
public ActionResult Create()
{
var ddl = new Users();
ddl.DropDowns = userRepository.Getddl("Departments").Select(c => new SelectListItem
{
Value = c.DropdownID.ToString(),
Text = c.DropdownText
});
ViewData["ListofProfiles"] = new SelectList(ListofProfiles, "Value", "Text");
return View(ddl);
}
答案 0 :(得分:1)
尽量避免使用ViewData
方法。切换到强类型的方法。向View Model添加另一个属性以再携带一个下拉项
public class User
{
public int SelectedCountry { set;get;}
public int SelectedProfile { set;get;}
public List<SelectListItem> Countries {set;get;}
public List<SelectListItem> Profiles {set;get;}
public User()
{
Countries =new List<SelectListItem>();
Profiles =new List<SelectListItem>();
}
}
现在在GET
操作
public ActionResult Create()
{
var vm=new User();
vm.Countries=GetCountryItems();
vm.Profiles=GetProfileItems();
return View(vm);
}
其中GetCountryItems
和GetProfileItems
是2个方法,它们返回国家/地区的SelectListItem对象列表和db。
不要让您的控制器成为FAT。保持简单和干净。移走从存储库获取数据到不同层的代码。易于阅读和维护:)
在你的强类型视图中,
@mode User
@using(Html.BeginForm())
{
@Html.DropDownListFor(m => m.SelectedCountry,
new SelectList(Model.Countries, "Value", "Text"), "Select")
@Html.DropDownListFor(m => m.SelectedProfile,
new SelectList(Model.Profiles, "Value", "Text"), "Select")
<input type="submit" />
}