我正在研究MVC应用程序。我使用dropdownlist
来选择值。现在,有一个更新表单,其中有多个项目可以更新。
问题是,如果我更新字段并且未选择dropdownlist
中的某个项目,则其未获得现有值,而是显示Null
。
如何获得exisiting selected value in dropdownlist in HTTPPost
?
查看
<div>
@Html.LabelFor(Student => Student.Gender)
@Html.DropDownList("Gender","Select Gender")
</div>
控制器
[HttpPost]
public ActionResult UpdateStudent(Student student)
{
if (ModelState.IsValid)
{
var studentToUpdate = (from students in db.Students
where students.StudentId == student.StudentId
select students).Single();
studentToUpdate.Name = student.Name;
studentToUpdate.Gender = student.Gender;
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(student);
}
}
事情是,当我更新名称和性别,然后一切正常。但是,如果我只更新名称,那么在回发时,下拉框中的值结果为空,即我需要从下拉列表中选择一个项目。
答案 0 :(得分:0)
您还必须分配值,而不仅仅是下拉列表文本。
<option value="volvo">Volvo</option>
<option selected="selected" value="saab">Saab</option>
分配值时,必须为下拉列表选项指定相关值属性。
这只是猜测。