2011-07-28 52 views
0

我有一個.NET MVC應用程序,其視圖可生成包含多個表格的HTML(根據用戶從前一視圖中的輸入選擇而有所不同)。每個表格可以有不同數量的複選框(由用戶從前一個視圖中進行選擇控制),用戶可以使用這些複選框進行選擇並將其發送到最終報告。複選框正在通過在生成的HTML輔助寫入.aspx文件一個「for」循環:確定視圖中選定複選框的數量

<%: Html.CheckBox("optionSelect" + checkCounter)%> 

checkCounter已被添加,使得每個複選框具有遵循一個數字升序模式的不同的名稱。如果下一個複選框是新表的一部分(即,第一個表中的3個複選框爲「optionSelect1」至「optionSelect3」,則第二個表中的3個複選框爲「optionSelect4」 「optionSelect6」)。

什麼是確定選擇該視圖中的哪些複選框以便控制器類在提交用戶選擇時可以使用該信息的好方法?至少,有沒有辦法告訴控制器類爲視圖生成的複選框總數?我是新來的.NET MVC框架,所以如果其他人可以指出我錯過的其他選項,我將不勝感激。

回答

1

你有點用複選框在這裏錯了;相反,你應該簡單地對所有的複選框定義一個特定的名稱,然後將這些值將被張貼到該名稱下逗號分隔的服務器:

<input type="checkbox" id="1" name="Shared" value="1" /> 
<input type="checkbox" id="2" name="Shared" value="2" /> 
<input type="checkbox" id="3" name="Shared" value="3" /> 
<input type="checkbox" id="4" name="Shared" value="4" /> 
<input type="checkbox" id="5" name="Shared" value="5" /> 

在這種情況下,當您檢查1,3 5,當您發佈到服務器,你會得到這樣的事情:

public ActionResult Sample(string Shared) 
{ 
     // Shared is "1,3,5" 
} 

你似乎過於複雜的事情,而不是簡化到基本的HTML表單= d

+0

唉唉,這是更喜歡它的!我認爲必須有一個更簡單的方法來做到這一點。 :-p感謝您的意見 - 非常感謝! – geekyhybrid

+0

所有照顧,在一個自定義的HTML幫手的幫助。 :-D – geekyhybrid