确定视图中选定复选框的数量

时间:2011-07-28 16:47:29

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

我有一个.NET MVC应用程序,其视图生成包含多个表的HTML(这取决于用户在上一个视图中的输入选择)。每个表可以具有不同数量的复选框(由用户从先前视图中选择的控制),用户可以使用该复选框来进行将被发送到最终报告的选择。复选框通过在'for'循环中生成的HTML帮助程序写入.aspx文件:

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

已添加checkCounter,以便每个复选框都有一个不同的名称,该名称遵循升序数字模式。如果下一个复选框是新表的一部分,则编号不会被重置(即,第一个表中的3个复选框是“optionSelect1”到“optionSelect3”,第二个表中的3个复选框是“optionSelect4”到“optionSelect6”)。

确定选择此视图中的哪些复选框以便控制器类在提交用户选择时可以使用该信息的好方法是什么?至少,有没有办法告诉控制器类为视图生成的复选框总数?我是.NET MVC框架的新手,所以如果其他人可以指出我错过的其他选项,我将不胜感激。

1 个答案:

答案 0 :(得分: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