在MVC中的HTTP Post上没有获得Current DropDownList值

时间:2014-09-05 16:23:00

标签: asp.net-mvc

我正在研究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);
        }
    } 

事情是,当我更新名称和性别,然后一切正常。但是,如果我只更新名称,那么在回发时,下拉框中的值结果为空,即我需要从下拉列表中选择一个项目。

1 个答案:

答案 0 :(得分:0)

您还必须分配值,而不仅仅是下拉列表文本。

<option value="volvo">Volvo</option>
<option selected="selected" value="saab">Saab</option>

分配值时,必须为下拉列表选项指定相关值属性。

这只是猜测。