【发布时间】:2016-01-27 06:24:33
【问题描述】:
我觉得这应该很简单,但在这里没有找到解释在 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();
}
我想在下拉列表中显示这些名称中的每一个,以便可以选择一个名称。
我试图让这个工作,但没有成功。
我的控制器:
[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 很陌生,因为我过去一直使用网络表单。有没有人知道这是否可能或显示它的方法?
谢谢,
【问题讨论】:
-
您不能将
<select>绑定到List<SelectListItem>。您的模型需要一个简单的属性来绑定(所选选项的值),例如public string SelectedUser { get; set; } -
你能举个例子吗?我之前尝试过类似的事情,但没有运气。谢谢
-
Travis Schettler 的编辑现在是正确的,除了我建议
public List<string> UserList { get; set; }是public IEnumerable<SelectListItem> UserList { get; set; }并且您使用@Html.DropDownListFor(m => m.User, Model.UserList, "Select User")并且[Display]属性需要在User上,而不是 @987654333 @ -
太棒了,感谢您的帮助
-
那你应该考虑接受特拉维斯的回答:)
标签: c# asp.net asp.net-mvc html.dropdownlistfor