我觉得这应该很简单,但我们在这里找不到解释在MVC中使用dropdownlistfor的指南。
我在类Users:
中的方法中有一个简单的名称列表public List<string> getUsersFullNames()
{
return (from da in db.Dat_Account
join ra in db.Ref_Account on da.AccountID equals ra.AccountID
select ra.FirstName + " " + ra.Surname).ToList();
}
我想在下拉列表中显示每个名称,以便可以选择名称。
我试图让这个工作,但没有成功。
我的控制器:
[Authorize]
public ActionResult ManageUserAccounts()
{
ViewBag.UserList = oUsers.getUsersFullNames();
return View();
}
我的模特:
public class ManageUserAccountsViewModel
{
[Display(Name = "Users")]
public List<SelectListItem> UserList { get; set; }
}
我的观点:
Html.DropDownListFor(model => model.UserList, new SelectList(oUsers.getUsersFullNames(), "Select User"));
我对asp.net MVC很新,因为我过去一直使用webforms。有没有人知道这是可能的还是一种显示方式?
谢谢,
答案 0 :(得分:3)
我建议直接在视图中使用模型,而不是ViewBag。更新您的操作以包含模型参考:
public ActionResult ManageUserAccounts()
{
var model = new ManageUserAccountsViewModel();
model.UserList = oUsers.getUsersFullNames();
return View(model);
}
您的模型应该更新为包含选定的用户属性:
public class ManageUserAccountsViewModel
{
public string User { get; set; }
[Display(Name = "Users")]
public List<string> UserList { get; set; }
}
您的观点应该与模型绑定:
@model ManageUserAccountsViewModel
@Html.DropDownListFor(m => m.User, new SelectList(Model.UserList), "Select User")