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

如何将选中的复选框列表传递至MVC控制器

ASP.NET 复选框绑定到模型List属性的实现方法

你已经通过asp-for标签助手实现了文本框与模型属性的绑定,要将多个复选框绑定到public List<string> PTList { get; set; }属性并在控制器中获取选中值,只需按以下步骤修改:

1. 确保模型属性初始化

为避免提交时出现空引用异常,建议在模型中初始化PTList:

public class YourModel
{
    public List<string> PTList { get; set; } = new List<string>();
    // 其他属性(如你示例中的Year)
    public int Year { get; set; }
}

2. 修改复选框代码

将每个复选框的asp-for属性指向PTList,ASP.NET会自动处理表单提交时的选中值收集:

<div class="col-3">
    <div class="form-check">
        <input asp-for="PTList" class="form-check-input" type="checkbox" value="U100" />
        <label asp-for="PTList" class="form-check-label">U100</label>
    </div>
    <div class="form-check">
        <input asp-for="PTList" class="form-check-input" type="checkbox" value="U110" checked />
        <label asp-for="PTList" class="form-check-label">U110</label>
    </div>
    <div class="form-check">
        <input asp-for="PTList" class="form-check-input" type="checkbox" value="U130" />
        <label asp-for="PTList" class="form-check-label">U130</label>
    </div>
    <div class="form-check">
        <input asp-for="PTList" class="form-check-input" type="checkbox" value="U150" checked />
        <label asp-for="PTList" class="form-check-label">U150</label>
    </div>
</div>
  • asp-for="PTList"会自动为每个复选框生成唯一的id,同时让label的for属性自动对应,无需手动设置
  • 每个复选框的value值就是选中后会提交到PTList中的内容

3. 控制器中获取选中值

在POST方法中直接接收模型实例,PTList属性会自动填充选中的复选框值:

[HttpPost]
public IActionResult YourAction(YourModel model)
{
    // model.PTList 即为所有选中的复选框值列表(例如未修改选中状态时,值为 ["U110", "U150"])
    if (ModelState.IsValid)
    {
        // 执行你的业务逻辑
        return RedirectToAction("Success");
    }
    return View(model);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:27:41