Как получить значение «<select></select>» из представления в «ActionResult» контроллера? - PullRequest
0 голосов
/ 21 января 2019

У меня есть тег и кнопка.При нажатии кнопки вызывается actionResult в контроллере.Вот так.

<button type="button" onclick="location.href='@Url.Action("GetAllItems", "Items")'">Get Items</button>

А вот ActionResult

public ActionResult GetAllItems() {
        string selectedItem = string.Empty;
        ItemsRepository itemsRepository = new ItemsRepository();
        ModelState.Clear();
        return View(itemsRepository.GetAllItems());
    }

selectedItem - это переменная, которую я хочу сохранить в selectedText или selectedValue.Но я не знаю, как это сделать.

Это тег <Select>.

<select style="width:170px" id="ItemsID" name="Items"></select>

А это грубая функция для полученияотличные результаты от события onChange.

<script>
$(document).ready(function () {
    $("#ItemsID").change(function () {
        var a = $('#ItemsID option:selected').val();
        var b = $('#ItemsID option:selected').text().trim();
        var c = $('#ItemsID option:selected').index();

        alert(a);
        alert(b);
        alert(c);
    })
});

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

location.href не отправляет запрос POST. Что вам нужно сделать, это разместить тег формы с вашим ActionResult, чтобы сделать запрос POST.

<form action='yourAction'>
<select name='name'></select>
<button type="submit">Get Items</button>
</form>
0 голосов
/ 21 января 2019

Вы можете использовать следующий код, чтобы получить значение вашего выбора в методе действия. Обратите внимание, что вы должны передать атрибут name вашего HTML-элемента select в Request.

var selectedValue = Request["Items"];

Кроме того, убедитесь, что нажатая кнопка отправляет форму, используя код, как показано ниже.

Суть в том, что вы можете использовать объект Request только для доступа к значению html-элемента в коде C #, при условии, что html-элемент и кнопка отправки находятся в одной форме. Если вы используете кнопку, которая перенаправляет пользователя, а не отправляет форму, это не будет работать, поэтому она должна быть кнопкой типа отправки, как показано в коде ниже.

@using (Html.BeginForm("YourActionName", "ControllerName")) {

          <select style="width:170px" id="ItemsID" name="Items"></select>

          <input type="submit" value="Submit Data" id="btnSubmit" />

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