ASP.NET MVC - 将多个复选框值传递给控制器

时间:2011-08-27 21:48:49

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

我正在创建一个自定义html帮助器,允许我一次分组多个复选框。除了复选框之外,我还使用了span元素,因为我需要以无法使用native元素的方式设置复选框的样式。以下是我的自定义HTML帮助程序的示例输出:

<span class="checkbox" id="peopleInvolved-1"></span>
<input id="checkbox-peopleInvolved-1" name="peopleInvolved" style="display:none" type="checkbox" value="1"></input>
<label for="peopleInvolved-1">John Doe</label><br /> 

用户单击span元素(或可选的标签),它通过一些jQuery魔术模仿复选框。那部分效果很好。我无法理解的部分是将这些数据正确地传回控制器。目前我正在执行以下操作来检索结果:

public ActionResult Index(string[] peopleInvolved){}

我了解当前的设置,只有选中的值才会返回控制器。我也理解这是因为HTML限制,并且ASP.NET本机解决方法是在每个复选框旁边创建一个额外的隐藏元素。我没有问题添加额外的隐藏输入元素,但在我的场景中如何应用?我将使用相同的名称将几个复选框组合在一起。

感谢。

1 个答案:

答案 0 :(得分:1)

听起来你想做的是从多个具有相同名称的html元素发回一个字符串值列表。我要做的是用隐藏元素替换复选框,使用类似data-value="John Doe"的属性,并在点击您选择的html元素时填充或取消填充隐藏元素值。

可用示例Here.