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

如何将HTML删除按钮的ID值传递至ASP.NET(C#)后端的OnPostDelete方法?

解决ASP.NET中多删除按钮传递对应ID的问题

方法1:使用ASP.NET Tag Helper(原生推荐)

这是最简洁的原生实现方式,无需解析ID字符串,直接通过路由参数传递ID:
前端按钮(可保留原ID,同时绑定路由参数):

<button id="Delete-1" type="submit" asp-page-handler="Delete" asp-route-id="1" class="btn btn-danger">删除</button>
<button id="Delete-2" type="submit" asp-page-handler="Delete" asp-route-id="2" class="btn btn-danger">删除</button>

后端OnPostDelete方法直接接收ID参数:

public async Task<IActionResult> OnPostDelete(int id)
{
    // 直接使用id值发起API删除请求
    // 示例:await _yourApiService.DeleteObjectAsync(id);
    return RedirectToPage();
}

方法2:JavaScript解析按钮ID并提交

如果必须通过按钮ID提取数字,可通过JS绑定点击事件,将ID存入隐藏字段后提交表单:
先添加一个用于提交的表单和隐藏字段:

<form id="deleteForm" method="post">
    <input type="hidden" id="targetDeleteId" name="targetDeleteId" />
    <!-- 页面其他内容 -->
</form>

<button id="Delete-1" class="delete-btn btn btn-danger">删除</button>
<button id="Delete-2" class="delete-btn btn btn-danger">删除</button>

绑定JS点击事件:

document.querySelectorAll('.delete-btn').forEach(btn => {
    btn.addEventListener('click', function(e) {
        e.preventDefault();
        // 拆分按钮ID提取数字部分
        const deleteId = this.id.split('-')[1];
        // 给隐藏字段赋值
        document.getElementById('targetDeleteId').value = deleteId;
        // 提交表单触发后端方法
        document.getElementById('deleteForm').submit();
    });
});

后端方法接收隐藏字段传递的ID:

public async Task<IActionResult> OnPostDelete(int targetDeleteId)
{
    // 使用targetDeleteId执行删除逻辑
    // await _yourApiService.DeleteObjectAsync(targetDeleteId);
    return RedirectToPage();
}

方法3:使用FormAction属性(独立按钮场景)

如果删除按钮不在表单内部,可通过formaction直接指定请求地址和参数:

<button id="Delete-1" type="submit" formaction="/YourPageName?handler=Delete&id=1" class="btn btn-danger">删除</button>
<button id="Delete-2" type="submit" formaction="/YourPageName?handler=Delete&id=2" class="btn btn-danger">删除</button>

后端方法与方法1一致,直接接收int id参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:55:25