我有一个包含一大堆复选框和一些其他类型的控件的表单。我需要检索每个选定复选框的名称。
做这个的最好方式是什么?我可以用 linq 查询来做吗?
所以在伪代码中,我想做这样的事情:
var names = formCollection
.Where(c => c is Checkbox && c.Checked)
.Select(c => c.Name);
更新似乎 MVC 提交复选框的方式与普通表单的行为方式不同,因为还呈现了隐藏字段。我在这里找到了详细信息:如何处理 ASP.NET MVC 表单中的复选框?
任何人,我已经在该线程的帮助下以及下面 BuildStarted 的答案下工作了。下面的代码成功了。
var additionalItems = form.AllKeys
.Where(k => form[k].Contains("true") && k.StartsWith("addItem"))
.Select(k => k.Substring(7));