【问题标题】:Get values from unchecked checkboxes (FormCollection) - MVC3从未选中的复选框(FormCollection)中获取值 - MVC3
【发布时间】:2012-02-19 22:39:23
【问题描述】:

为什么未选中的复选框不在集合中? 我只能访问选中的值。

我需要它,因为我想从我的数据库中删除所有未选中的内容。

这里是代码示例:

foreach (var item in collection.AllKeys.Where(c => c.StartsWith("check_projekt_")).Select((x, i) => new { Data = x, Index = i }))
{
                if (collection[item.Data] == "1")
                {
                    dbclass.addUserToProjekt(Convert.ToInt32(collection["projekt_" + item.Index]), Convert.ToDouble(collection["input_projekt_" + item.Index]), mID);
                }
                else {
                    dbclass.deleteUserFromProjekt(Convert.ToInt32(collection["projekt_" + item.Index]), mID);
                }
}

TIA

【问题讨论】:

    标签: html asp.net-mvc-3


    【解决方案1】:

    您可以使用 Razor 中的 @Html.CheckBox("cbName",true) 方法来创建复选框。 MVC 还为每个复选框添加了一个隐藏的输入字段,因此您可以看到具有真/假状态的所有内容。有关详细信息,请参阅此帖子:

    Razor ViewEngine HTML.Checkbox method creates a hidden input. Why?

    【讨论】:

    • 好的,我试过了,但是当我尝试从集合中获取值时,我得到的值是“true,false”??
    • 嗯。您可能必须将您的集合绑定到视图模型才能使该方法起作用。理想情况下,您应该使用视图模型,而不是直接使用 FormCollection。
    • 是的,我知道 - 但它现在可以与 FormCollection 一起使用。 (我用 "true,false" 字符串检查了,呵呵 :)
    猜你喜欢
    • 2015-05-13
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2012-04-12
    • 2013-03-21
    相关资源
    最近更新 更多