我以前从未在 StackOverflow 上问过问题,也从未想过,但我很绝望,所以我们开始吧:我无法将保存的值显示为下拉列表中的默认值/显示。
我在控制器中设置了列表:
public ActionResult Index()
{
//User Dropdown List
var users = Roles.GetUsersInRole("Manager");
SelectList list = new SelectList(users);
ViewBag.Users = list;
return View();
}
然后在视图中,管理员可以选择其中一个用户并通过 EF 将其保存到我的数据库中:
@Html.DropDownList("Users", ViewBag.Users as SelectList, "--Select Manager--")
这一切都很好,但是,当您编辑此条目时,我希望下拉列表显示当前保存的经理,而不是列表中的名字。我希望在我的编辑操作中,我可以将当前管理器从数据库中拉出并将其作为默认选定项传递回下拉列表,但不行:
public ActionResult Edit(int id = 0)
{
var theOwner = (from v in _db.Location where v.LocationID == id select v.Owner).FirstOrDefault();
var users = Roles.GetUsersInRole("Manager");
SelectList list = new SelectList(users, theOwner);
ViewBag.Users = list;
从我在过去两周阅读的所有示例中,每个人都有 3 个不同的值可以在他们的下拉列表中使用,这使得在 SelectList 方法中使用所有重载成为可能。但是,我的问题是我只有这个字符串列表,其中只有一个项目,所以我不能根据需要使用重载。
那么有没有人知道我如何才能让它发挥作用?非常感谢您抽出宝贵的时间!