【问题标题】:How to pass current selection value to route id in MVC Core View如何在 MVC 核心视图中将当前选择值传递给路由 id
【发布时间】:2020-05-24 10:41:52
【问题描述】:

我有一个表单,其中包含数据库中的用户列表和一个具有 AJAX 获取方法的按钮,该方法将通过视图组件在下方显示用户信息。

我的问题是我不知道如何使用 asp-route-id 将所选用户的 userId 传递给我的控制器。以下是我尝试做的简化版本。

<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>

【问题讨论】:

    标签: asp.net-core model-view-controller asp.net-core-tag-helpers


    【解决方案1】:

    您可以使用此示例代码轻松做到这一点。

    <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>
    

    【讨论】:

    • 似乎还可以,但我想知道是否有另一种方法而不编写我的 JS。也许使用一些标签助手将当前选择与 asp-route-id 绑定?
    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2010-11-02
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多