Я пытаюсь динамически создать раскрывающийся список внутри моей формы и вернуть выбранные значения из всего раскрывающегося списка и другого элемента управления формы обратно на мой контроллер.
Минимальное количество раскрывающихся списков - 1, а максимальное количество раскрывающихся списков, которое может существовать, - это количество параметров в раскрывающемся списке. Например, если количество опций равно 5, количество в списке нисходящих может быть от 1 до 5.
Параметры раскрывающегося списка
public enum Subject: byte
{
English = 0,
Mathematics,
Biology,
Physics,
Chemistry,
Geography,
History
}
Модель
public class Student
{
public int Id { get; set; }
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "D.O.B")]
public string DOB { get; set; }
public string SelectedSubject { get; set; }
//I want to create dynamic drop down lists for subjects
//TODO: add supporting properties to get selected subjects
}
Посмотреть
...
@using (Html.BeginForm())
{
<div class="form-horizontal">
@Html.HiddenFor(model => model.Id)
<div class="form-group>
@Html.LabelFor(model => model.Name)
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
</div>
</div>
<div class="form-group>
@Html.LabelFor(model => model.DOB)
<div class="col-md-10">
@Html.EditorFor(model => model.DOB)
</div>
</div>
<div class="form-group>
@Html.LabelFor(model => model.DOB)
<div class="col-md-10">
@Html.DropDownListFor(model => model.SelectedSubject, new SelectList(Enum.GetValues(typeof(Subject))))
</div>
</div>
@*Add "Add subject" button"*@
@*Add dropdown list, Add "Remove" button and shift Add button to the back*@
@*the newly added dropdown list is just beside the previous one*@
@*Number of dropdown list: 1 to 7*@
@*If number of dropdown list is 7, add button is hidden*@
@*If number of dropdown list is 1, delete button is hidden*@
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value=Create />
</div>
</div>
</div>
}
Контроллер
//TODO: add more parameters to support getting the data from the dropdownlist
[HttpPost]
public ActionResult Create(Student student, **add other parameter to support dropdown list selected value**)
{
...
}
Все прокомментированные области, я не уверен, что добавить.
Заранее спасибо.