gpt4 book ai didi

c# - 如何通过 HttpContext.Current.Request.Form 知道在 HTML 页面中选中了哪些复选框?

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:53 25 4
gpt4 key购买 nike

我的观点是这样的:

<input type="checkbox" value="1" name="services-for" />
<input type="checkbox" value="2" name="services-for" />
<input type="checkbox" value="3" name="services-for" />

假设用户检查了第 1 和第 3。

我的 POST 操作 Controller 函数如下所示:

    public ActionResult SaveProfile()

而不是 SaveProfile(string name, List<int> servicesFor)以及诸如此类的原因,因为字段输入的数量非常多(超过 100 个),而且其中许多字段的名称中都有编码值(例如,name="item-542146")。

所以我正在使用 HttpContext.Current.Request.Form访问表单值。然而,HttpContext.Current.Request.Form["services-for"]返回 null 而它适用于普通文本输入,即不是多选。

我能做什么?

最佳答案

您最好如下使用 FormCollection 参数,而不是从 HttpContext.Current.Request 中检索值,因为这仍然可以让您轻松测试您的操作方法:

public ActionResult SaveProfile(FormCollection form)
{
var servicesFor = (form["services-for"] ?? "")
.Split(',')
.Select(int.Parse);

// ...
}

请注意,如果已发布的表单中没有选中的输入项,form["services-for"] 可能会返回 null。

关于c# - 如何通过 HttpContext.Current.Request.Form 知道在 HTML 页面中选中了哪些复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com