2017-03-17 36 views
0

我有多個從ViewBag列表綁定的複選框。我在添加記錄時使用了這種模式。但現在我有編輯的情況。我已將選定的複選框ID保存在不同的表中。現在在編輯中,如何在添加該記錄時按照用戶選擇完成選擇?如何設置使用兩個列表選中的複選框MVC

@foreach (var item in ViewBag.Features) 
{ 
    <div class="form-group form-animate-checkbox col-md-4 col-sm-12"> 
     <input type="checkbox" class="checkbox Amenities" value="@item.ID" name="@item.Name"> 
     <label class="lblamenities">@item.Name</label> 
    </div> 
} 
+1

呦需要設置每個複選框的'checked'值。但是,您的代碼是嘗試綁定到模型並且永遠不會提供真正的雙向模型綁定或任何驗證的可怕方法。使用一個包含屬性'int ID','string Name'和'bool IsSelected'的視圖模型,這樣你可以使用'@ Html.CheckBoxFor()'綁定到'Selected'屬性。 –

+0

舉例來說,請參考[this answer ](http://stackoverflow.com/questions/29542107/pass-list-of-checkboxes-into-view-and-pull-out-ienumerable/29554416#29554416) –

回答

0

在ViewBag.Features是列表類型的變量,這包含ID和名稱,但在你的需求,你需要選擇那些複選框前面的保存。 因此,您可以將另一個參數或變量選爲bool類型,這些id保存在我們的數據庫中,所選變量爲true,否則爲false。

鑑於整頁拼版檢查檢查與否,PLZ看到下面的代碼....

@foreach (var item in ViewBag.Features) 
{ 
    <div class="form-group form-animate-checkbox col-md-4 col-sm-12"> 
     <input type="checkbox" class="checkbox Amenities" value="@item.ID" name="@item.Name" checked='@(item.selected?"checked":"")'> 
     <label class="lblamenities">@item.Name</label> 
    </div> 
} 
+0

這是錯誤的 - 如果'item的值。 selected'是'trie'它呈現'checked =「checked」'如果它的'false'呈現'checked',兩者都會導致複選框被檢查 –

+0

它需要是'''' –

+0

你沒有仔細看到代碼。因爲我在真正使用三元運算符它呈現checked =「檢查」,並假它呈現檢查=「」 –

相關問題