【问题标题】:Transfer Razor variable between two div elements在两个 div 元素之间传输 Razor 变量
【发布时间】:2020-05-19 01:34:57
【问题描述】:

我在一个 <div> 元素中有一个 foreach 循环。

@foreach (var patient in Model.Patients)
                    {
                        <tr>
                            <td>@Html.DisplayFor(modelItem => patient.FirstName)</td>
                            <td>@Html.DisplayFor(modelItem => patient.LastName)</td>
                            <td>@Html.DisplayFor(modelItem => patient.PersonalID)</td>
                            <td>
                                <a asp-action="Edit" asp-route-id="@patient.Id" class="btn btn-success"><i class="glyphicon glyphicon-pencil"></i>  Edit</a>
                                <a onclick="showDetails()" class="btn btn-success"><i class="glyphicon glyphicon-pencil"></i>  Detail</a>
                                <form asp-action="DeleteUser" asp-route-id="@patient.Id" method="post" style="display: inline;">
                                    <button class="btn btn-danger">
                                        Delete
                                    </button>
                                </form>
                            </td>
                        </tr>
                    }

当用户点击详细信息按钮时,我如何保存@patient.Id 元素

<a onclick="showDetails()" class="btn btn-success"><i class="glyphicon glyphicon-pencil"></i>  Detail</a>

这样我就可以在同一个视图中使用它,但可以在不同的&lt;div&gt; 元素中使用它。

我在 body 的开头清除了另一个变量。

<body>
@{ var patientId = 0; }

【问题讨论】:

    标签: asp.net variables razor view model


    【解决方案1】:

    这很简单。将所选按钮传递给 JavaScript 函数并检索当前行的 3 个子项,即当前患者 ID:

    <script>
    function showDetails(elem) {
        var patientid = elem.parentElement.parentElement.children[2].innerText;
        alert("Hello\n" + patientid);
    }
    

    <table>
        @foreach (var patient in Model.Patients)
        {
            <tr>
                <td>@Html.DisplayFor(modelItem => patient.FirstName)</td>
                <td>@Html.DisplayFor(modelItem => patient.LastName)</td>
                <td>@Html.DisplayFor(modelItem => patient.Id)</td>
                <td>
                    <a asp-action="Edit" asp-route-id="@patient.Id" class="btn btn-success"><i class="glyphicon glyphicon-pencil"></i>  Edit</a>
                    <a onclick="showDetails(this)" class="btn btn-success"><i class="glyphicon glyphicon-pencil"></i>  Detail</a>
                    <form asp-action="DeleteUser" asp-route-id="@patient.Id" method="post" style="display: inline;">
                        <button class="btn btn-danger">
                            Delete
                        </button>
                    </form>
                </td>
            </tr>
        }
    </table>
    

    这是输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      相关资源
      最近更新 更多