asp.net-mvc - 从 FormCollection 元素获取多个复选框

标签 asp.net-mvc checkbox formcollection

给定多个 HTML 复选框:

<input type="checkbox" name="catIDs" value="1" />
<input type="checkbox" name="catIDs" value="2" />
...
<input type="checkbox" name="catIDs" value="100" />

如何在操作中从 FormCollection 中检索整数数组:

public ActionResult Edit(FormCollection form)
{
    int [] catIDs = (IEnumerable<int>)form["catIDs"]; // ???

    // alternatively:
    foreach (int catID in form["catIDs"] as *SOME CAST*)
    {
        // ...
    }

    return View();
}
<小时/>

注意:我阅读了相关问题,并且不想更改我的操作参数,例如。 编辑(int [] catIDs)

最佳答案

当您有多个同名控件时,它们是逗号分隔值。换句话说:

string catIDs = form["catIDs"];

catID 为“1,2,3,...”

因此,要获取所有值,您可以这样做:

string [] AllStrings = form["catIDs"].Split(',');
foreach(string item in AllStrings)
{
    int value = int.Parse(item);
    // handle value
}

或者使用 Linq:

var allvalues = form["catIDs"].Split(',').Select(x=>int.Parse(x));

然后您可以枚举所有值。

关于asp.net-mvc - 从 FormCollection 元素获取多个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617754/

相关文章:

symfony - 完全清除表单集合

asp.net - 如何强制 Web API 识别查询字符串参数

jquery - 为什么复选框不起作用?

jQuery,计算文本框值的总和

javascript - 获取选中复选框的值?

javascript - Asp.Net MVC 3 formcollection在提交后丢失数据

c# - 从 Controller 访问它时,我的 MvcApplication 的属性为 null

c# - 整数方法总是返回 "-1"?

.net - HTML Helper不再能够推断类型参数

forms - 如何对 Symfony2 表单集合项进行排序