You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC循环渲染卡片按钮仅首个生效 如何统一调用相同函数

问题解决方法

核心错误原因

HTML 规范要求 id 属性全局唯一,你在循环中生成了6个相同id为btnNewSave的按钮、以及6个相同id为getValue的隐藏输入框,jQuery 的 #id 选择器只会匹配页面中第一个符合条件的元素,因此只有第一个卡片的按钮绑定了点击事件,取值时也只会取第一个卡片的id。

修改步骤

1. 调整视图层代码

移除重复id,改用class标识按钮,直接将对应训练项的id存入按钮的data-*自定义属性,不需要额外加隐藏输入框:

<h2>Our workouts</h2>
<div class="container">
    <div class="row">
        @foreach (var item in Model)
        {
            <div class="col-md-4">
                <div class="card" style="width: 18rem;">
                    <img src="~/Content/not-found-image.jpg" class="card-img-top" alt="...">
                    <div class="card-body">
                        <h5 class="card-title">@item.Name</h5>
                        <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
                        <div class="textButton">
                            <a class="btn btn-primary btnNewSave" data-id="@item.Id">Go to anywhere</a>
                        </div>
                    </div>
                </div>
            </div>
        }
    </div>
</div>

2. 调整脚本代码

改用class选择器绑定所有按钮的点击事件,通过$(this)获取当前点击的按钮,读取其携带的id参数,同时跳转时需要把id拼到目标地址中,否则跳转后的页面无法拿到对应参数:

@section scripts {
    <script>
        $(document).ready(function () {
            // 给所有class包含btnNewSave的按钮绑定点击事件
            $(".btnNewSave").click(function () {
                // 获取当前点击按钮绑定的训练项id
                var currentId = $(this).data("id");
                $.ajax({
                    type: "GET",
                    url: '/TrainingType/ListCoach',
                    data: { id: currentId },
                    success: function (res) {
                        console.log(res);
                        // 跳转时携带id参数
                        window.location.href = '/TrainingType/ListCoach?id=' + currentId;
                        return res;
                    },
                    error: function () {
                        $("#loader").fadeOut("slow");
                        console.log("error1");
                    }
                });
            });
        });
    </script>
}

内容的提问来源于stack exchange,提问作者Boris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:30:00