1

Asp.net C#、MVC3 Razor Viewを使用して、レコードの編集中にドロップダウンリストの値を設定しようとしていますが、次のモデルがあります。

public class EditEmployeeModel
    {
        ....
        public int? DepartmentId { get; set; }

        [Required(ErrorMessage = "Department is must")]
        [Display(Name = "Department")]
        public string Department { get; set; }

        public List<SelectListItem> Departments { get; set; }

        .....
}

コントローラ:

 public ActionResult Edit(string id)
    {
        EditEmployeeModel model = respo.GetEmployeeByID(id);
        model.Departments = GetDepartments();
        return View(model);
    }

そして見る:

<div class="editor-field">
@Html.DropDownListFor(m => m.DepartmentId, Model.Departments, new { id ="ddlstDepartments"})
@Html.ValidationMessageFor(m => m.Department)
</div>

ただし、ビューが編集のためにロードされると、ドロップダウンリストには常にデフォルト/最初に選択されたアイテムが表示されます。誰かがここで助けてくれませんか。

4

2 に答える 2

1

表示に渡す前に、リスト内の1つの要素に対してselected = trueを設定してみましたか?

Soにはいくつかの質問があります。これはあなたがこれを好きになるのに役立つかもしれません:

于 2013-03-06T06:15:58.580 に答える
-1

DepartmentIdモデル内を確認してください

   EditEmployeeModel model = respo.GetEmployeeByID(id);
   //model.DepartmentId

nullではありません。--Select Department--@Karthikが提案したようにラベルを表示したい場合は、

Html.DropDownListFor(m => m.DepartmentId, Model.Departments,"--Select Department")
于 2013-03-06T06:17:17.243 に答える