Как передать текущее значение выбора в идентификатор маршрута в MVC Core View - PullRequest
1 голос
/ 08 февраля 2020

У меня есть форма, содержащая список пользователей в базе данных, и кнопка, которая имеет метод AJAX get, который отображает информацию пользователя ниже через компонент просмотра.

Моя проблема в том, что я не надеваю не знаю, как передать userId для выбранного пользователя на мой контроллер, используя asp -route-id. Ниже приведена упрощенная версия того, что я пытаюсь сделать.

<form>
  <td>
    <select class="form-control userSelect" id=userSelect asp-for="User">
      <option value="userid1">username1</option>
      <option value="userid2">username2</option>
       ....
    </select>
  </td>
  <td>
    <a asp-controller="Admin"
       asp-action="UserDetails"
       asp-route-id= "Here i want to have current selected option value as id"
       data-ajax="true"
       data-ajax-method="GET"
       data-ajax-mode="replace"
       data-ajax-update="#userDetails"
       class="btn btn-danger"
       role="button" aria-pressed="true">Details</a>                               
  </td>
</form>

1 Ответ

1 голос
/ 08 февраля 2020

Вы можете легко сделать это с помощью этого примера кода.

<html>
<head>
</head>
<body>
    <form>
        <table>
            <tr>
                <td>
                    <select class="form-control userSelect" id=userSelect>
                        <option value="userid1">username1</option>
                        <option value="userid2">username2</option>
                        ....
                    </select>
                </td>
                <td>
                    <a asp-controller="Admin"
                       asp-action="UserDetails"
                       asp-route-id="Here i want to have current selected option value as id"
                       data-ajax="true"
                       data-ajax-method="GET"
                       data-ajax-mode="replace"
                       data-ajax-update="#userDetails"
                       class="btn btn-danger"
                       role="button" aria-pressed="true">Details</a>
                </td>
            </tr>
        </table>
    </form>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"
            integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
            crossorigin="anonymous"></script>
    <script>
        $(document).ready(function () {
            $('select').change(function () {
                $('a').attr('asp-route-id', $(this).children('option:selected').val());
            })
        })
    </script>
</body>
</html>
...