获取Checkbox值到控制器

时间:2013-05-17 18:11:40

标签: asp.net asp.net-mvc asp.net-mvc-2

在下面的视图中,我试图将已选中的复选框值提供给控制器以保存在数据库中。

<div class="editor-label">
                <%: Html.LabelFor(model => model.Addresses) %>
            </div>

             <div class="editor-field">
             <% foreach (var item in Model.Addresses)
                { %>
       <input type="checkbox" 
         id="<%: item.addressID %>"
         name="addressOption"
         value="<%: item.addressID%>"/>
       <label for="optionId"><%: item.address%></label>
       <br />
         <% } %>
               </div>
               <br />
            <div class="editor-label">
                <%: Html.LabelFor(model => model.Mobile) %>
            </div>

控制器:

AdvanceClient cli = new AdvanceClient();

                    if (ModelState.IsValid)
                    {

                        cli.Mobile = Request.Form["Mobile"];

                        foreach (var item in Request.Form["Addresses"])
                        {
                            //here i need to get the checked checkbox values
                        }
                    }

我很难获得已选中复选框的值

2 个答案:

答案 0 :(得分:1)

您可以使用以逗号分隔的字符串获取所有值:

var selectedValues = Request.Form["mySharedName"];
 // This is now a comma separated list of values that was checked

对你而言:Request.Form["addressOption"]

然后使用for循环,您可以获得所有值

答案 1 :(得分:0)

您可以存储这样的数组

<input type="checkbox" name="addressOption[0]" id="..." value="..." />
<input type="checkbox" name="addressOption[1]" id="..." value="..." />
<input type="checkbox" name="addressOption[2]" id="..." value="..." />

现在您只需要在模型中使用相同名称的数组

List<int> addressOption;

并将在提交时自动填充。