我正在尝试制作表单的编辑部分。我传递给视图的对象是正确的。我通过这个函数传递它:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Progetto Progetti = db.Progetti.Find(id);
if (Progetti == null)
{
return HttpNotFound();
}
//这里我初始化了两个列表。 (一个从Utenti获得数据,另一个从Ruoli获取数据。)
ViewBag.Utenti = new SelectList(db.Utenti.toList(),"IDUTENTE","USERNAME");
ViewBag.Ruoli = new SelectList(db.Ruoli.ToList(), "id_ruolo", "desc_ruolo");
return View("index", Progetti); //the object Progetti comes OK
}
在我看来,我有这个:
@for (int i = 0; i < Model.Count; i++)
{
var item = Model.ElementAt(i);
var index = "rp" + i;
<input type="hidden" name="progetto.ruoloprogetto[@index].id_ruolo_prog" value="@item.id_ruolo_prog" />
<tr class="@i" id="@item.id_ruolo_prog">
<td>
<input type="hidden" name="progetto.ruoloprogetto.Index" value="@index" />
@Html.DropDownListFor(p=> item.id_utente, ViewBag.Utenti as SelectList,
new
{
@Class = "form-control",
@Name = "progetto.ruoloprogetto[" + index + "].id_utente",
@Id = "progetto.ruoloprogetto[" + index + "]_id_utente"
})
</td>
<td>
@Html.DropDownListFor(p => item.id_ruolo, ViewBag.Ruoli as SelectList,
new
{
@Class = "form-control",
@Name = "progetto.ruoloprogetto[" + index + "].id_ruolo",
@Id = "progetto.ruoloprogetto[" + index + "]_id_ruolo"
})
</td>
但下拉列表会获取所有列表值,并且不会将所选值设置为item.id_utente,这是我希望它拥有的值
有人可以帮忙解决这个问题吗?
提前完成
答案 0 :(得分:0)
尝试使用这种方式,
@Html.DropdownListFor(x => x[i].id_ruolo, ViewBag.Ruoli as SelectList,
new {
@Class = "form-control"
});