首页 > 解决方案 > 编辑下拉列表不显示模型的值

问题描述

我想编辑一名员工,但在编辑视图中,下拉列表不显示基于模型
控制器的选定项目:

public ActionResult Edit(int? id)
    {   
        Employee employee = db.tblEmploye.Find(id);
        return View(employee);
    }

编辑.cshtml

<div class="form-group">
    @Html.LabelFor(model => model.Gender, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownListFor(Model => Model.Gender, new List<SelectListItem>
               {
                    new SelectListItem{Text = "Male", Value = "Male"},
                    new SelectListItem{Text = "Female", Value = "Female"}
               }, "Select Gender", new { @class = "form-control" })
        @Html.ValidationMessageFor(model => model.Gender, "", new { @class = "text-danger" })
    </div>
</div>

标签: c#asp.net

解决方案


对于要选择的选项,您必须将Selected设置为 true。

@Html.DropDownListFor(Model => Model.Gender, new List<SelectListItem>
{
    new SelectListItem{Text = "Male", Value = "Male", Selected = Model.Gender == "Male" },
    new SelectListItem{Text = "Female", Value = "Female", Selected = Model.Gender == "Female" }
}, "Select Gender", new { @class = "form-control" })

SelectList还提供了一些构造函数来自动执行此操作。

@Html.DropDownListFor(
  model => model.Gender, 
  new SelectList(new [] { "Male", "Female" }, Model.Gender), 
  "Select Gender", 
  new { @class = "form-control" })

推荐阅读