加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:22:33 所属栏目:asp.Net 来源:网络整理
导读:给定多个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 Ed
给定多个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));

然后你可以枚举所有的值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读