Как передать выбранный элемент списка выбора в действие контроллера в качестве параметра - PullRequest
1 голос
/ 24 января 2020

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

В моем представлении:

<form asp-action="Explore" asp-controller="Venue" method="Post">
  <div class="form-group">
    <select title="Sort by">
      <option name="name"> <a asp-controller="Venue" asp-action="Explore" asp-route-sortby="Name">Name</a> </option>
      <option name="rating">Rating</option>
      <option name="rating">Price</option>

    </select>
  </div>

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

public async Task < IActionResult > Explore(
  string sortby) {
  return View(_context.Hotels.OrdeyrByDescending(x => x.Name).ToList();
  }

1 Ответ

1 голос
/ 24 января 2020

Предполагая, что вы нажимаете Action, добавьте атрибут name к вашему <select>.

Так что-то вроде этого:

<select title="Sort by" name="sortby">

Имейте в виду, что имя должен соответствовать имени параметра в действии. Кроме того, вам нужно будет добавить атрибут value ко всем вашим тегам <option>, например:

<option name="rating" value="rating">Rating</option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...