为复选框添加值类似于单选按钮asp.net mvc razor

时间:2015-12-05 16:17:47

标签: c# asp.net asp.net-mvc razor

我认为这种形式:

@foreach (var partner in ((List<string>)ViewBag.Email))
            {
                <div class="checkbox">
                    <label> @Html.CheckBox("partners", true, new { @class = "myCheckbox" }) @ViewBag.FirstName[item] @ViewBag.Lastname[item] ( @partner.ToString() )  
                    </label>
                </div>
                item += 1;
            }

这些复选框动态显示(foreach)。所有复选框都具有相同的名称“partners”,默认情况下都会检查所有复选框。那我怎么检查,检查哪些复选框?

我的控制器方法,我从表单处理这些数据:

 public ActionResult Create(List<string> partners){
   ...
 }

如何在视图中更改我的表单,我知道识别出不同的复选框?

2 个答案:

答案 0 :(得分:0)

如果我是你,我会使用Patner对象列表而不是字符串列表,这些字符串将包含一些ID,Partner和Selected属性。然后使用它:

     @Html.CheckBoxFor(m => m.Selected)...

对于所有选中的复选框项,您的视图会将属性Selected设置为true。

答案 1 :(得分:0)

@Html.CheckBox会创建一个额外的隐藏字段,您可以在这种情况下使用普通html,如下所示。只会检查已选中的复选框值。

<input type="checkbox" checked name="partners" class="myCheckbox" value="YourValueHere"/>

希望这会对你有所帮助。