Как я могу опубликовать значения нескольких опций из списка выбора на MVC контроллере? - PullRequest
3 голосов
/ 01 апреля 2020

У меня есть список выбора, подобный приведенному ниже, и мне нужно опубликовать значение каждого параметра из списка выбора на контроллере. Можно ли как-то получить эти значения?

Выбрать список

<select size="10" id="SelectedSortOrderOptions" name="SelectedSortOrderOptions">
    <option value="Parcel Number">Parcel Number</option>
    <option value="Receipt Number">Receipt Number</option>
    <option value="Municipality">Municipality</option>
</select>

Могу ли я сделать что-то подобное в моем контроллере?

public IActionResult submit(List<string> SelectedSortOrderOptions)
{
...
}

Мне нужно получить новый список строк, которые будут иметь значения Parcel Number, Receipt Number и Municipality.

Ответы [ 2 ]

3 голосов
/ 01 апреля 2020

Могу ли я сделать что-то подобное в моем контроллере?

Да, вы могли бы сделать это. Если вы хотите определить список выбора с несколькими параметрами, в представлении необходимо добавить атрибут multiple к тегу <select>:

<form method="post" action="/home/submit">
    <select name="SelectedSortOrderOptions" multiple>
        <option value="Parcel Number">Parcel Number</option>
        <option value="Receipt Number">Receipt Number</option>
        <option value="Municipality">Municipality</option>
    </select>
    <button type="submit">Submit</button>
</form>

В контроллере:

[HttpPost]
public IActionResult Submit(List<string> SelectedSortOrderOptions)
{
    return View();
}

Вы можете удерживать клавишу Ctrl на Windows (или команду на Ма c) при выборе нескольких вариантов.

1

0 голосов
/ 01 апреля 2020

Вы можете использовать jquery, чтобы получить все опции и передать их контроллеру по ajax:

<script>
        $('#SelectedSortOrderOptions').change(function (e) {
            var optionsVal =[];
            $("#SelectedSortOrderOptions option").each(function () {
                optionsVal.push($(this).val());
            });
            $.ajax({
                type: 'POST',
                url: '/Home/submit',
                traditional: true,
                dataType: "json",
                data: { SelectedSortOrderOptions: optionsVal },
                success: function () {

                },
            });
        });
    </script>
...