2011-07-18 60 views
0

我在MVC3中有一個視圖,它有一堆複選框。用戶檢查一個或多個複選框並點擊提交。提交時,我想在局部視圖或視圖中顯示選中的框值。在MVC3中顯示選中的複選框值

<table> 
    <tr><td> @Html.Label("Label1")</td><td> @Html.CheckBox("CB1")</td></tr> 
    <tr><td> @Html.Label("Label2")</td><td> @Html.CheckBox("CB2")</td></tr> 
    <tr><td> @Html.Label("Label3")</td><td> @Html.CheckBox("CB3")</td></tr> 
</table> 
@Html.ActionLink("Submit", "SubmitCB") 

控制器動作:

public ActionResult SubmitCB() 
    { 
     @foreach (var checked in ?) 
     { 
      //Display checked only here...    
     } 
    } 

我想知道如何我可以循環通過並且顯示在一個局部視圖或視圖的結果。謝謝你的幫助。

回答

1

您需要更改動作以允許它綁定到提交的表單。此外,您還需要正確提交表單(我建議的形式標記包裝它並使用,而不是操作鏈接提交按鈕,但這裏是你的行動將是什麼樣子。

public ActionResult SubmitCB(bool CB1, bool CB2, bool CB3) 
{ 
    ... // use CB1, CB2, and CB3 here 
} 

如果」 d像這些複選框在列表中,你需要給它們所有相同的名稱和不同的值。然後你可以讓你的動作採取類似於SubmitCB(string[] CBs)的東西,並查看該數組中的值(它們將是選中的複選框)

+0

如果我的複選框比3多,我該如何處理這個繁瑣的複選框,因爲它的參數太多了 – ZVenue

+0

使用第二種方法,你所有的複選框應該有相同的名稱, differen t Ids。我通常選擇不使用Html.CheckBox助手,因爲它有點愚蠢。但那是你的選擇。只需檢查SO for MVC 3複選框列表:http://stackoverflow.com/questions/2067786/asp-net-mvc-checkbox-group – Milimetric