Ваш текущий код,
@Html.DropDownList("Dept", null, "--Select--",
htmlAttributes: new { @class = "form-control" })
сгенерирует разметку HTML для элемента SELECT со значением атрибута имени, установленным в Dept
<select class="form-control" id="Dept" name="Dept">
<option value="">--Select--</option>
</select>
Поскольку вы используете Student
class в качестве параметра метода действия httppost, для привязки модели для правильного сопоставления выбранного значения параметра со DeptId
свойством объекта Student необходимо убедиться, что имя выбранного элемента также также DeptId
Есливаше представление строго типизировано до класса Student
, вы можете использовать DropDownListFor
вспомогательный метод
@Html.DropDownListFor(a => a.DeptId, ViewBag.Dept as IEnumerable<SelectListItem>,
"--Select--", htmlAttributes: new { @class = "form-control" })
или
Вы можете использовать DropDownList
метод иукажите DeptId
в качестве первого параметра (имя элемента управления) и явно укажите коллекцию, которая будет использоваться для построения параметров в качестве второго параметра.
@Html.DropDownList("DeptId", ViewBag.Dept as IEnumerable<SelectListItem>,
"--Select--", htmlAttributes: new { @class = "form-control" })
Это отобразит элемент SELECT с установленным значением атрибута nameна DeptId
, и когда форма отправлена, связыватель модели сможет использовать выбранное значение параметра, чтобы установить для него свойство DeptId
объекта Student
(который является параметром метода действия httppost)г)