MVC下拉列表如何在编辑时保存已保存的值

时间:2015-09-15 19:58:00

标签: asp.net-mvc dropdownbox

我有一个从数据库填充的下拉列表。当我转到编辑页面以更改任何字段时,下拉列表会将其自身设置为列表中填充的第一个值。我的问题是,当我尝试编辑其他一些字段时,如何保留所选值?

这是观点:

@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; }

1 个答案:

答案 0 :(得分:2)

您不能赋予ViewBag属性与绑定的模型属性相同的名称。

在GET方法中,将名称更改为(比方说)

ViewBag.DepartmentList = new SelectList(db.DEPARTMENTs, "DEPTID", "DEPTID");

并在视图中

@Html.DropDownListFor(m => m.DEPTID, (SelectList)ViewBag.DepartmentList, new { @class = "form-control" })

如果DEPTID的值与其中一个选项值匹配,则在渲染视图时将选择该选项。