2009-07-25 62 views
0

基本上我有一組被動態地從視圖數據生成,像這樣的複選框:ASP .Net MVC,複選框有問題!

<input type="checkbox" name="Calendars" value="<%= c.ID %>" /><%= c.Name %> 

的值是日曆ID。

我可以得到什麼複選框已被帶回使用FormsCollection其雜亂,但它的作品!

(似乎還有一個複選框幫助程序會在複選框旁邊顯示一個隱藏字段,這意味着true實際上被返回爲「true,false」!我可以解決這個問題,所以它不是一個問題Id提到它)

當試圖鉤住編輯頁面上的複選框時,問題出現了!

我有一個可以有多個日曆的日程安排課程,我想通過在編輯時檢查它們來顯示日程安排具有哪些日程安排!

我的觀點是強類型的,但MVC魔術不能映射這個!

什麼是最好的辦法做到這一點的任何想法?

我曾嘗試在ViewData中傳遞日曆ID,並執行一些內聯​​代碼來檢查相應的複選框,但是這變得混亂!

謝謝!

UPDATE:

做完這

s.ID == c.ID)。選擇性(s => S).Count之間()> 0)? 「籤=檢查」: 「」 %>

回答

3

您需要添加 「人工檢查」 標籤到每一個複選框:

<input type="checkbox" name="Calendars" value="<%= c.ID %>" checked="checked" /><%= c.Name %> 
+0

謝謝!我過於複雜了! – 2009-07-25 11:40:21

2

你不需要<input type="checkbox" - 使用Html.Checkbox()。它在複選框旁邊呈現一個隱藏字段 - 但它不是一個錯誤。從ASP.NET MVC源,InputExtensions.cs,線條201:

// Render an additional <input type="hidden".../> for checkboxes. This 
// addresses scenarios where unchecked checkboxes are not sent in the request. 
// Sending a hidden input makes it possible to know that the checkbox was present 
// on the page when the request was submitted. 

使用此:

<%= Html.CheckBox("Calendars", c.ID) %> 
+0

啊!謝謝,這是完全合理的! – 2009-07-25 12:04:48