MVC在对象集合的编辑视图中的下拉列表中显示对象值
本文关键字:对象 下拉列表 显示 编辑 集合 MVC 视图 | 更新日期: 2023-09-27 18:29:32
我在从控制器到视图的数据通信中遇到了一些问题,反之亦然。这是我的控制器:
ViewBag.MANAGER_IDS = new SelectList(db.APP_USERS, "USER_ID", "USER_ID");
return View(app_users_manager);
我想做的是在每个对象(即app_users_manager)的下拉列表中填充填充管理器ID
以下是我的观点:
@model List<HRM.Models.APP_USERS_MANAGER>
@{
ViewBag.Title = "Edit managers";
}
@using (Html.BeginForm("Edit", "UserManager", FormMethod.Post)) {
@Html.AntiForgeryToken()
<table>
<tr class="myidtr">
<th>Manager role</th>
<th>Manager</th>
</tr>
@for (int i = 0; i < Model.Count; i++)
{
<tr class="mytr">
@Html.Hidden("app_users_manager[" + @i + "].USER_ID", Model[i].USER_ID)
<td>
@Html.DisplayFor(modelItem => Model[i].APP_MANAGERS.MANAGER_DESCRIPTION)
</td>
<td>
@Html.DropDownList("app_users_manager[" + @i + "].USER_ID_MANAGER", ViewBag.USER_ID_MANAGER as List<SelectListItem>, "-Select manager-")
</td>
</tr>
}
</table>
@Html.ValidationSummary(false)
<p>
<input type="submit" value="Save" />
</p>
}
我可以使用以下方法做到这一点:
@Html.DropDownList(Model[i].USER_ID_MANAGER, ViewBag.USER_ID_MANAGER as List<SelectListItem>, "-Select manager-", new { @Id = "Test"})
但是我没有在我的控制器中得到更新的值。或者如果我做了以下事情,那么我就无法在视图上获得价值:
@Html.DropDownList("USER_ID_MANAGER", ViewBag.USER_ID_MANAGER as List<SelectListItem>, "-Select manager-")
有人能告诉我里面出了什么问题吗?非常感谢您的帮助!!
感谢您的宝贵意见Stephen。我能够看到并坚持改变的价值观。对于未来任何人提到的类似问题,以下是我如何解决的:
public ActionResult Edit(string user_id)
{
ViewBag.USER_ID_MANAGER = new SelectList(db.APP_USERS, "USER_ID", "USER_ID");
return View(app_users_manager);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(List<APP_USERS_MANAGER> app_users_manager)
{
return View(app_users_manager);
}
这就是我的观点:
@Html.DropDownList("app_users_manager[" + @i + "].USER_ID_MANAGER", new SelectList(ViewBag.USER_ID_MANAGER, "Value", "Text", Model[i].USER_ID_MANAGER), "-Select manager-")