2012-01-26 81 views
0

爲什麼未勾選的複選框不在集合中? 我只能訪問選中的值。從未勾選的複選框(FormCollection)獲取值 - MVC3

我需要它,因爲我想從我的數據庫中刪除所有未選中。

下面一個代碼示例:

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

回答

0

可以使用@Html.CheckBox("cbName",true)方法剃刀創建的複選框。 MVC還爲每個複選框添加了一個隱藏的輸入字段,這樣您就可以看到具有真/假狀態的所有內容。看到這個職位的詳細信息:

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

+0

好吧,我試了一下,但是當我試圖從集合中獲得的價值,然後我得到「真,假」的價值? – lifeofbenschi

+0

嗯。您可能必須將您的集合綁定到該方法才能工作的視圖模型。理想情況下,您應該使用視圖模型,而不是直接使用FormCollection。 –

+0

是的,我知道 - 但它現在與FormCollection一起工作。 (我用「真實,錯誤」字符串hehe檢查它:) – lifeofbenschi