2

私はMVC4に取り組んでいます.DropdownListはSelectedValueをバインドしていません. 以下のコードを見つけてください。どこが間違っているのかわかりませんでした。

私は SelectList を見てきました、それは SelectedValue を持っていますが、ビュー DropdownList にバインドしていません

コントローラーコード

public ActionResult Edit(int id)
        {
            Employee model = _unitOfWork.EmployeeRepository.Find(id);
            ViewBag.OfficeSiteId = new SelectList(_unitOfWork.OfficeSiteRepository.Get(), "Id", "Name", model.OfficeSiteId);
return View("Edit", model);
}

意見

<div class="control-group">
                @Html.LabelFor(model => model.OfficeSiteId, new {@class = "control-label"})

                <div class="controls">
                    @Html.DropDownList("OfficeSiteId", ViewBag.OfficeSiteId as SelectList,  new {@class = "chzn-select"})
                    @Html.ValidationMessageFor(model => model.OfficeSiteId, null, new {@class = "help-inline"})
                </div>
            </div>
4

3 に答える 3

0

あなたの行動方法はOKです。次のようにビューを変更するだけです。

<div class="control-group">
     @Html.LabelFor(model => model.OfficeSiteId, new {@class = "control-label"})

     <div class="controls">
          @Html.DropDownList("OfficeSiteId", String.Empty)

          @Html.ValidationMessageFor(model => model.OfficeSiteId)
     </div>
</div>

class属性を設定する必要がある場合は、次を使用します。

@Html.DropDownListFor(model => model.OfficeSiteId, 
   new SelectList(new PtDbContext().OfficeSites, "ID", "Name"),
   htmlAttributes: new { class = "yourClass" })

または、ViewBag で selectList を送信する場合:

@Html.DropDownListFor(model => model.OfficeSiteId, 
    (SelectList)ViewBag.OfficeSiteId,
     htmlAttributes: new { class = "yourClass" })
于 2013-07-23T13:44:04.073 に答える