我觉得这应该很简单,但没有在这里找到解释在 MVC 中使用 dropdownlistfor 的指南。
我在用户类的方法中有一个简单的名称列表:
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();
}
我想在下拉列表中显示每个名称,以便可以选择名称。
我尝试让它工作,但没有成功。
我的 Controller :
[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。有谁知道这是否可能或显示它的方法?
谢谢
最佳答案
我建议直接在 View 中使用模型,而不是 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; }
}
您的 View 应该绑定(bind)到模型:
@model ManageUserAccountsViewModel
@Html.DropDownListFor(m => m.User, new SelectList(Model.UserList), "Select User")
关于c# - 使用列表中的字符串创建 DropDownList<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35022837/