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

ASP.NET Core中如何提交复选框的value值而非布尔值?

解决方案

要实现勾选复选框时提交对应的value值,只需完成两个关键修改:

1. 给复选框添加统一的name属性

原代码中的复选框缺少name属性,浏览器不会提交未命名的表单控件。给所有复选框设置相同的name(比如SelectedItems),勾选的多个值会以集合形式提交到后端。

修改后的视图代码:

<form asp-controller="X" asp-action="Y">
    @for (int i = 0; i < Model.SomeListOfStrings.Count; i++)
    {
        <input type="checkbox" 
               name="SelectedItems" 
               value="@Model.SomeListOfStrings[i]" />
        <!-- 可选:添加标签显示文本,方便用户识别选项 -->
        <label>@Model.SomeListOfStrings[i]</label>
    }
    <input type="submit" />
</form>

2. 后端Action接收集合参数

在XController的Y方法中,定义一个与name属性同名的集合参数,ASP.NET Core的模型绑定会自动将提交的勾选值绑定到该参数:

public IActionResult Y(List<string> SelectedItems)
{
    // SelectedItems即为所有被勾选的复选框value值的集合
    // 编写你的业务处理逻辑
    return View();
}

补充说明

  • 未勾选的复选框不会被浏览器提交,因此后端参数只会包含被勾选的value值,完全符合需求。
  • 如果使用强类型模型,也可以结合asp-for标签助手实现,但直接设置统一name的方式对字符串列表场景更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:55:29