Как динамически добавить или удалить выпадающий список? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь динамически создать раскрывающийся список внутри моей формы и вернуть выбранные значения из всего раскрывающегося списка и другого элемента управления формы обратно на мой контроллер.

Минимальное количество раскрывающихся списков - 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**)
{
    ...
}

Все прокомментированные области, я не уверен, что добавить. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...