Ben*_*Ben 2 c# asp.net asp.net-mvc html.dropdownlistfor
我觉得这应该很简单,但是这里没有找到说明在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();
}
Run Code Online (Sandbox Code Playgroud)
我想在下拉列表中显示每个名称,以便可以选择一个名称。
我试图使此工作正常,但没有成功。
我的控制器:
[Authorize]
public ActionResult ManageUserAccounts()
{
ViewBag.UserList = oUsers.getUsersFullNames();
return View();
}
Run Code Online (Sandbox Code Playgroud)
我的模特:
public class ManageUserAccountsViewModel
{
[Display(Name = "Users")]
public List<SelectListItem> UserList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的看法:
Html.DropDownListFor(model => model.UserList, new SelectList(oUsers.getUsersFullNames(), "Select User"));
Run Code Online (Sandbox Code Playgroud)
我对asp.net MVC相当陌生,因为我过去一直使用Webforms。有谁知道这是否可行或显示方式吗?
谢谢,
我建议直接在视图中而不是在ViewBag中使用模型。更新您的操作以包括模型参考:
public ActionResult ManageUserAccounts()
{
var model = new ManageUserAccountsViewModel();
model.UserList = oUsers.getUsersFullNames();
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
您的模型应更新为包括选定的User属性:
public class ManageUserAccountsViewModel
{
public string User { get; set; }
[Display(Name = "Users")]
public List<string> UserList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您的视图应绑定到模型:
@model ManageUserAccountsViewModel
@Html.DropDownListFor(m => m.User, new SelectList(Model.UserList), "Select User")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4348 次 |
| 最近记录: |