MVC Dropdownlist如何在编辑时保留保存的值
MVC Dropdownlist how to keep saved value when editing
我有一个从数据库中填充的下拉列表。当我转到编辑页面更改任何字段时,下拉列表将其自身设置为列表中填充的第一个值。我的问题是当我尝试编辑其他一些字段时如何保留所选值?
这是视图:
@Html.DropDownListFor(m => m.DEPTID, (IEnumerable<SelectListItem>)ViewBag.DEPTID, htmlAttributes: new { @class = "form-control" })
这是控制器:
public ActionResult Edit(string id, string id2, int id3)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
JOB jOB = db.JOBs.Find(id, id2, id3);
if (jOB == null)
{
return HttpNotFound();
}
ViewBag.DEPTID = new SelectList(db.DEPARTMENTs.ToList(), "DEPTID", "DEPTID");
return View(jOB);
}
这是型号:
public class JOB
{
public string DEPTID { get; set; }
您不能给 ViewBag
属性 与您绑定到的模型 属性 相同的名称。
在 GET 方法中将名称更改为(例如)
ViewBag.DepartmentList = new SelectList(db.DEPARTMENTs, "DEPTID", "DEPTID");
并在视图中
@Html.DropDownListFor(m => m.DEPTID, (SelectList)ViewBag.DepartmentList, new { @class = "form-control" })
如果 DEPTID
的值与选项值之一匹配,则在呈现视图时将选择该选项。
我有一个从数据库中填充的下拉列表。当我转到编辑页面更改任何字段时,下拉列表将其自身设置为列表中填充的第一个值。我的问题是当我尝试编辑其他一些字段时如何保留所选值?
这是视图:
@Html.DropDownListFor(m => m.DEPTID, (IEnumerable<SelectListItem>)ViewBag.DEPTID, htmlAttributes: new { @class = "form-control" })
这是控制器:
public ActionResult Edit(string id, string id2, int id3)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
JOB jOB = db.JOBs.Find(id, id2, id3);
if (jOB == null)
{
return HttpNotFound();
}
ViewBag.DEPTID = new SelectList(db.DEPARTMENTs.ToList(), "DEPTID", "DEPTID");
return View(jOB);
}
这是型号:
public class JOB
{
public string DEPTID { get; set; }
您不能给 ViewBag
属性 与您绑定到的模型 属性 相同的名称。
在 GET 方法中将名称更改为(例如)
ViewBag.DepartmentList = new SelectList(db.DEPARTMENTs, "DEPTID", "DEPTID");
并在视图中
@Html.DropDownListFor(m => m.DEPTID, (SelectList)ViewBag.DepartmentList, new { @class = "form-control" })
如果 DEPTID
的值与选项值之一匹配,则在呈现视图时将选择该选项。